Allgemeines

JoJoThumb

Version 2.7

Copyright 1998-2003 by Johannes Tschebisch
Email: jojo@jojosoftware.de
WWW: http://www.jojosoftware.de

JoJoThumb kann auf der Basis von Bilder mit den Formaten BMP, EMF, JPG, PCD, PCX, PNG, TGA, TIF und WMF Thumbnails erzeugen und daraus eine komplette HTML-Präsentation mit einem Index, Übersichten und Bildseiten erstellen.

Dabei können die folgenden Möglichkeiten genutzt werden:

  • komfortable Festlegung des Umfangs der Umsetzung
    Durch vielfältige Einstellungen ist es möglich, den Umfang der umzusetzenden Bilder festzulegen. Dabei können Filter für die Dateinamen, Größeneinschränkungen der Bilder, das Dateiformat oder die Auswertetiefe genutzt werden.
  • Clonen der Originalbilder mit einheitlich Ausdehnung
    JoJoThumb kann Bilder in ein Cloneverzeichnis kopieren, dabei die unterschiedlichen Dateiformate einheitlich in JPEG mit einer vorgegebenen Bildausdehnung konvertieren.
  • Stempel
    Beim Clonen kann JoJoThumb Texte oder Bilder in das Bild einfügen, z.B. für Copyrightkennzeichnungen
  • Thumbnailgenerator
    JoJoThumb erzeugt Thumbnails aus BMP, EMF, JPG, PCD, PCX, PNG, PSD, TGA, TIF und WMF-Bildern.
  • Erzeugen einer HTML-Präsentation
    Auf der Basis der Originalbilder sowie der Thumbnails kann eine Bildersammlung auf HTML-Basis erstellt werden. Diese besteht aus einer Indexseite, einer oder mehrerer Übersichtsseiten mit den Thumbnails sowie jeweils einer HTML-Seite für jedes Bild.

    Anhand vielfältiger Optionen kann das Aussehen dieser Aufbereitung gesteuert werden.

  • JoJoScript
    Ein besonderes Hilfsmittel zum Aufbau der HTML-Dokumente ist die Nutzung der Scriptsprache JoJoScript. Über sie sind nahezu alle Zustände der aktuellen Umsetzung, wie laufende Bildnummer, Seitennummer, Zeilennummer aber auch Navigationsangaben auf vorherige und nachfolgende Elemente verfügbar und können somit an beliebige Stellen der entstehenden HTML-Seiten eingebracht werden.

    Zusätzlich können eigene Funktionen geschrieben werden, in denen Schleifen, Vergleiche, Zuweisungen und Funktionsaufrufe (mathematische Funktionen, Zeichenkettenfunktionen, Konvertierungsfunktionen, Ein/Ausgabefunktionen, Bildfunktionen und sonstige Funktionen) als Sprachmittel zur Verfügung stehen. Diverse Datentypen von Variablen runden den Sprachumfang ab.

  • EXIF/IPTC-Informationen und JPG-Kommentare
    Die von Digitalkameras in jedem Bild gespeicherten Information (EXIF) wie Belichtungszeit, Brennweite, Blende, usw. werden erkannt und können für eine HTML-Präsentation genutzt werden.

    Dies gilt auch für Daten, die nach dem IPTC-Standard in den Bilder abgelegt worden sind sowie JPG-Kommentare.

  • Einstellungsprofile
    Alle Einstellungen, die zur Steuerung der Umsetzung gemacht werden, können in Profilen gespeichert und jederzeit wieder als Vorlage genutzt werden.
  • Batch-Fähigkeit
    JoJoThumb     kann über Kommandozeilenparameter automatisch gestartet werden.

Anmerkungen

JoJoThumb ist Freeware und darf uneingeschränkt für nichtkommerzielle Zwecke eingesetzt werden. Der Einsatz für kommerzielle Zwecke ist nur nach Rückfrage zulässig, aber ebenfalls frei.

Ich bitte um eine Mitteilung über den Einsatz von JoJoThumb durch eine eMail an jojo@jojosoftware.de, damit eine Information über Korrekturen und Erweiterungen erfolgen kann.

Wünsche, Anregungen und Fehlermeldungen können durch eine eMail an jojo@jojosoftware.de mitgeteilt werden.

JoJoThumb ist unter Windows 95, 98, ME, NT4, 2000 und XP lauffähig.
Zum Aufruf der Hilfefunktionalität ist allerdings die Installation eines der folgenden Programme Voraussetzung:
Microsoft Internet Explorer 4 oder höher, Microsoft Windows 98, 2000 oder XP, Microsoft Office 2000 oder XP oder Microsoft HTML-Help Workshop.

Updates von JoJoThumb sind auf der Internetseite http://www.jojosoftware.de/jojothumb zu finden.

Für Probleme, die sich aus dem Gebrauch von JoJoThumb ergeben, kann keinerlei Haftung übernommen werden.

Es besteht kein Anspruch auf Programmkorrekturen und Programmerweiterungen.


Deinstallation

Soll JoJoThumb deinstalliert werden, ist im „Windows Startmenü" nach Anwahl des Menüpunkts „Systemsteuerung" die Option „Software" zu wählen und in der angebotenen Liste der installierten Programme der Eintrag JoJoThumb.


Basisdialog

Wie arbeitet JoJoThumb?

Erstellen von Thumbnails, Erstellen einer HTML-Präsentation

Basisverzeichnis

Umsetzung

Basisverzeichnis

Deko-Quellverzeichnis

In diesem Beispiel soll eine HTML-Präsentation erstellt werden.
Es ist ein Verzeichnis (=Basisverzeichnis) auszuwählen, dass entweder direkt die umzuwandelnden Bilder enthält, oder diese zur Strukturierung in Unterverzeichnissen führt.
In diesem Beispiel das Verzeichnis demo1. Es enthält 3 Unterverzeichnisse (bilder1, bilder2, bilder3), in denen sich die Bilder befinden.
Als Ausgestaltungselemente werden Hintergrundbilder sowie Navigationspfeile benötigt, die in einem Deko-Quellverzeichnis vorliegen; in diesem Beispiel sind diese Elemente im Verzeichnis rahmen abgelegt.

Nach der Umsetzung mit JoJoThumb befinden sich im Basisverzeichnis demo1 3 neue Verzeichnisse.
deco enthält eine Kopie aller Ausgestaltungselemente aus dem Deko-Quellverzeichnis rahmen.
html enthält alle HTML-Dateien, die für die HTML-Präsentation benötigt werden.
thumbs enthält die Verkleinerungen der Bilder, die in der HTML-Präsentation zur Darstellung der Originalbilder auf der Übersichtsseite benötigt werden.

Clonen der Originalbilder, Erstellen von Thumbnails, Erstellen einer HTML-Präsentation

Basisverzeichnis

Umsetzung

Basisverzeichnis

Cloneverzeichnis

Deko-Quellverzeichnis

In diesem Beispiel soll eine HTML-Präsentation erstellt werden. Das Verzeichnis, das die Bilderverzeichnisse enthält, soll dabei nicht verändert werden.

Dies kann durch einen vorgeschalteten Arbeitsschritt, das Clonen, erreicht werden. Dazu wird die Verzeichnisstruktur des Basisverzeichnisses in ein Cloneverzeichnis transferiert. Dabei kann eine Umwandlung verschiedener Dateiformate in JPG durchgeführt werden, sowie eine einheitliche Bildgröße festgelegt werden.

Nach der Umsetzung mit JoJoThumb befinden sich im Cloneverzeichnis VoreinstellungClone die Original-Bilderverzeichnisse des Basisverzeichnisses (bilder1, bilder2, bilder3) sowie 3 weitere Verzeichnisse.
deco enthält eine Kopie aller Ausgestaltungselemente aus dem Deko-Quellverzeichnis rahmen.
html enthält alle HTML-Dateien, die für die HTML-Präsentation benötigt werden.
thumbs enthält die Verkleinerungen der Bilder, die in der HTML-Präsentation zur Darstellung der Originalbilder auf der Übersichtsseite benötigt werden.


Quickstart

Quickstart von JoJoThumb

Aufstarten von JoJoThumb
Im Menü den Punkt "Optionen" anwählen
Im Optionenbaum den Eintrag "Profil" anwählen
In der Auswahlliste "Profil-Verzeichnis" das Profil "Voreinstellung" auswählen
Optionendialog über Schalter "OK" beenden
Im Verzeichnisbaum das Verzeichnis (=Basisverzeichnis) auswählen, in dem sich die Bilder befinden
Als Auswerteverzeichnis "Basisverzeichnis" einstellen
Die Umsetzung der Bilder und das Erzeugen der HTML-Präsentation starten
Nach der Umsetzung JoJoThumb beenden
Im Basisverzeichnis befindet sich in dem neuen Unterverzeichnis "html" die Datei "default.html", die mit einem HTML-Browser zu öffnen ist


Basisdialog

Nach dem Aufstarten von JoJoThumb wird der Basisdialog geöffnet, in dem das Verzeichnis ausgewählt werden kann, das die umzusetzenden Bilder enthält.

Kopfzeile

In der Kopfzeile wird hinter dem Programmnamen JoJoThumb der Name des aktiven Profils ausgegeben.

Menü des Basisdialogs

Optionen

Über die Menüleiste kann ein Optionendialog für vielfältige Einstellungsmöglichkeiten der Thumbnailerstellung sowie der HTML-Seitendefinition aufgerufen werden.

Hilfe

Über den Menüpunkt Hilfe oder durch Drücken der Taste "F1" wird eine Onlinehilfe aufgerufen.
Wird die Hilfe mit "F1" aufgerufen, wird sie für den jeweiligen Dialog bezugnehmend angezeigt.

Anmerkung:
Da die Hilfefunktionalität auf Microsoft HTML-Help aufbaut, ist die Voraussetzung zum Funktionieren der Hilfe allerdings die Installation eines der folgenden Programme:
Microsoft Internet Explorer 4 oder höher, Microsoft Windows 98 der 2000, Microsoft Office 2000 oder Microsoft HTML-Help Workshop.

Info

Es werden die Versionsbezeichnungen von JoJoThumb sowie der benötigten Komponenten angezeigt.

Beenden

JoJoThumb kann über den Menüpunkt "Beenden" sowie das "Fensterschließsymbol" beendet werden.
Läuft eine Umsetzung, wird nur der aktuelle Umsetzprozess abgebrochen.

Basisverzeichnisbaum

Im Verzeichnisbaum kann das Verzeichnis (=Basisverzeichnis) ausgewählt werden, das als Ausgangsbasis für die Arbeit von JoJoThumb benutzt werden soll.
Schreibgeschützte Medien (z.B. CD-ROM) sind nicht als Basisverzeichnis anwählbar, da auf diesem Medium keine Thumbnails angelegt werden können.

Anmerkung:
Mit Hilfe der Taste "F5" wird die Verzeichnisstruktur zwangsweise neu eingelesen. Dabei geht allerdings eine Auswahleinschränkung in der Verzeichnisliste verloren.

Auswahlbaum

Im Auswahlverzeichnisbaum kann aus der Liste der möglichen unter die Auswahl fallenden Verzeichnisse eine einschränkende Auswahl getroffen werden. Der Umfang dieser Liste wird durch die Wahl des Auswerteverzeichnisses bestimmt.

Auswerteverzeichnis

Über eine einstellbare Option kann festgelegt werden, ob sich die zu bearbeitenden Quellbilder

nur im Basisverzeichnis
nur in den direkten Unterverzeichnissen des Basisverzeichnisses
nur in den direkten Unterverzeichnissen der direkten Unterverzeichnisse des Basisverzeichnisses

befinden.

Diese Festlegungsmöglichkeit hat sich als sinnvoll erwiesen, um durch die Verzeichnisstruktur eine gewisse Gliederung für eine optional anwählbare HTML-Aufbereitung zu bieten.

Die von der Aufbereitung betroffenen Verzeichnisse werden im Auswahlbaum aufgelistet, in der die zur Aufbereitung ausgewählten Unterverzeichnisse durch eine rote Darstellung erkennbar sind. Diese Auswahl kann durch Abwahl/Anwahl reduziert/erweitert werden.

starten

Durch diesen Knopf wird die Aufbereitung gestartet. Ist als Option das Erzeugen von HTML-Seiten aktiviert, wird eine Überprüfung der Syntax der HTML-Tags und eventuell vorhandener JoJoScript-Funktionen durchgeführt.

Nach dem Aufstarten der Aufbereitung ändert sich die Beschriftung des Knopfes starten in anhalten.

In der Statuszeile werden zwei Fortschrittanzeigen angezeigt und, falls eingeschaltet, das zuletzt umgesetzte Bild angezeigt. Im linken Teil kann der Gesamtfortschritt und im rechten Teil der Fortschritt im aktuellen Verzeichnis verfolgt werden.

Der Fortschritt im aktuellen Verzeichnis wird durch weitere Ausgaben erläutert. Im Auswahlbaum werden die schon umgesetzten Verzeichnisse grün dargestellt.

Hinweis:
Falls der Eindruck entsteht, dass es ein Problem beim Erzeugen gibt, handelt es sich dabei um das Bild, das nach dem angezeigten Bild aufbereitet würde (entsprechend des Sortierschalters für die HTML-Thumbnailseite bzw. eine Sortierung nach dem Dateinamen, falls keine HTML-Aufbereitung gewünscht wird).

anhalten

Die Aufbereitung kann jederzeit durch Betätigen des Knopfes anhalten, durch Anwahl des Menüeintrages "Beenden" oder des "Fensterschließknopfes" abgebrochen werden.

Kontrollbild

Die Anzeige des zuletzt umgesetzen Bildes kann an- und abgewählt werden. Durch "Nichtanzeige" wird der Programmablauf minimal beschleunigt.


Batch

JoJoThumb im Batch

JoJoThumb kann eingeschränkt als Batch-Prozess gestartet werden. Eingeschränkt bedeutet, dass beim Aufstarten Paremeter zur Steuerung übergeben werden können, JoJoThumb dann startet, die Umsetzung durchführt und sich wieder beendet.
Während der Umsetzung ist der normale Basisdialog sichtbar, so dass die Umsetzung jederzeit angehalten werden kann.

Parametersyntax:
/parametername=parameterinhalt

Aufgabe | Parameter | Anmerkungen
Setzen des Basisverzeichnisses | /BASEDIR=pfadname | Pflichtparameter
Profil auswählen | /PROFILE=profilname | Pflichtparameter
Auswerteebene setzen | /LEVEL=n | Pflichtparameter 0=Basisverzeichnis 1=Basis-Unterverzeichnisse 2=Basis-UnterUnterverzeichnisse
Kontrollbildanzeige | /CONTROLIMAGE=n | 1, T, W, TRUE und WAHR schalten die Anzeige ein
Einträge des Optionendialog setzen | /OptionsName=OptionsInhalt | Optionsnamen entsprechen den Eintragsnamen in den Profilen (Liste wird folgen) Beispiele: thumb_size zum Setzen der Thumbnailausdehnung clone_path für den Clonepfad Bei Schaltern bedeutet 0=ausgeschaltet und 1=eingeschaltet

Anmerkungen:

  • Keine Unterscheidung von Groß/Kleinschreibung der Parameternamen
  • Parametername, = und der Parameterinhalt dürfen nicht durch Leerzeichen getrennt sein
  • Beinhaltet der Parameterinhalt Leerzeichen, so ist der gesamte Parameterinhalt in " einzuschließen
  • Beinhaltet der Parameterinhalt ein ", müssen stattdessen zwei " geschrieben werden
  • Parametereinträge des Optionendialog überschreiben nur für diesen einen JoJoThumb-Lauf die Einstellungen aus dem Profil
  • Wechselwirkungen von Parametern gelten weiter
    War also im Profil das Erzeugen von Clones nicht eingeschaltet, reicht es nicht, als Parameter nur einen Clonepfad zu setzen, es muss ebenfalls das Erzeugen von Clones eingeschaltet werden
  • Die Umsetzung kann wie bisher angehalten werden. Dadurch wird in den Dialogmodus gewechselt
  • Fehlersituationen beenden den Batch-Modus und führen ebenfalls zu einem Wechsel in den Dialogmodus
  • Nach einem Wechsel in den Dialogmodus können keine Änderungen im Optionendialog gemacht werden, da dort die durch die Startparameter veränderten Einträge angezeigt würden, die aber nur temporär gelten

Beispiel:
JoJoThumb /basedir="e:\test\mein bv" /profile=voreinstellung /level=1 /controlimage=1 /generate_clones=1 /clone_path=e:\test\cv


Einstellungsprofile

Optionendialog

Im Optionenbaum kann ein Optionsbereich ausgewählt werden, zu dem Änderungen vorgenommen werden sollen. Die möglichen Optionen zu einem Optionsbereich werden in der rechten Hälfte des Dialogs angezeigt (hier Profiloptionen)

OK

Änderungen werden übernommen

Abbrechen

Änderungen werden verworfen. Es erfolgt noch eine Bestätigungsabfrage.


Einstellungsprofile

Alle Einstellungen, die im Optionendialog gemacht werden, können in Einstellungsprofilen abgespeichert werden.

Es wird zwischen System und Benutzerprofilen unterschieden.
Systemprofile werden im Unterverzeichnis "profiles" des Verzeichnisses gespeichert, in dem JoJoThumb installiert wurde.
Benutzerprofile können in einem beliebigen anderen Verzeichnis abgelegt sein.

Ist ein Benutzerprofil mit dem gleichen Namen wie ein Systemprofil vorhanden, wird in der Auswahlliste der verfügbaren Profile nur das Benutzerprofil angeboten.

Wird ein Profil gewechselt oder wird JoJoThumb beendet, so wird bei nicht gespeicherten Änderungen des aktuellen Profils auf diesen Tatbestand hingewiesen.

Zum Profil das letzte benutzte Verzeichnis und den Speicherort der Bilder merken

Ist dieser Schalter aktiviert, werden nach der Profilauswahl das vom jeweiligen Profil zuletzt "benutzte" Verzeichnis sowie die Setzung des Bildspeicherorts (Basisverzeichnis, Basis-Unterverzeichnisse, Basis-UnterUnterverzeichnisse) wieder eingestellt.

Benutzer-Profilverzeichnis

Hier kann das Verzeichnis ausgewählt werden, in dem eigene Profile gespeichert sind.

aktuelles Profil

Bestehende Profile werden durch Auswahl in der Profilliste zum aktuellen Profil.

In der Auswahlliste der verfügbaren Profile werden Systemprofile gelb und Benuterprofile grün kennlich gemacht.
Das nicht veränderbare Profil "Voreinstellung" wird rot gekennzeichnet.

speichern

Die Einstellungen des aktuellen Profils werden gesichert (Ausnahme ist das Profil "Voreinstellung").

speichern als

Anschließend ist in einem Dialog der Name des neuen Profils anzugeben. Die Einstellungen des vorher aktuellen Profils werden als Einstellungen für das neue Profil übernommen.
Ist ein Benutzer-Profilverzeichnis ausgwählt worden, wird das neue Profil in diesem Verzeichnis gespeichert. Ist dies nicht der Fall, wird das System-Profilverzeichnis genutzt.

Achtung:
Gültige Profilnamen entsprechen der Syntax für Dateinamen, da die Profildatei unter dem Namen des Profils mit der Dateiart "JTP" erzeugt wird.

löschen

Das aktuelle Profil kann durch Betätigen des Knopfes „löschen" aus der Profilliste gelöscht werden.

Beschreibung

Hier können Informationen zum aktuellen Profil abgelegt werden.


Dateifilter

Dateiname-Maske

Zusätzlich kann, über die Angabe von Dateinamen, der Dateiumfang eingeschränkt werden. Dazu sind, durch Komma getrennt, beliebig viele Dateinamen, die auch Platzhalterzeichen enthalten können, anzugeben. Es ist darauf zu achten, dass es sich hier nur um die Angabe des Dateinamens ohne Dateiart handelt; diese ist durch eine zusätzliche Auswahl festzulegen. Es wird nicht zwischen Groß- und Kleinschreibung unterschieden.

Beschreibung der Platzhalter

? Beliebiges einzelnes Zeichen
* Kein, ein oder mehrere Zeichen
# Beliebige einzelne Ziffer (0-9)
[Zeichenliste] | Beliebiges einzelnes Zeichen in Zeichenliste
[!Zeichenliste] | Beliebiges einzelnes Zeichen, das nicht in Zeichenliste enthalten ist

Eine Gruppe aus einem oder mehreren Zeichen (Zeichenliste) in eckigen Klammern ([ ]) kann verwendet werden, um eine Entsprechung mit jedem einzelnen Zeichen im Ausdruck zu erkennen. Dabei beinhaltet Zeichenliste fast alle Zeichen aus dem ANSI-Zeichensatz (auch Ziffern). Eine Entsprechung der Sonderzeichen "linke eckige Klammer" ([ ), Fragezeichen (?), #-Zeichen und Sternchen (*) mit sich selbst kann sogar nur dann erkannt werden, wenn sie in eckige Klammern eingeschlossen sind. Die rechte eckige Klammer ( ]) kann nicht in einer Gruppe verwendet werden, um die rechte eckige Klammer selbst darzustellen, aber sie kann außerhalb einer Gruppe als einzelnes Zeichen verwendet werden.

Neben einer einfachen Liste aus Zeichen, die in eckige Klammern eingeschlossen ist, kann Zeichenliste einen Bereich von Zeichen mit einem Bindestrich (-) angeben, der den obersten und den untersten Wert des Bereichs voneinander trennt. Bei der Verwendung von [A-Z] in Muster wird z.B. eine Entsprechung erkannt, wenn die entsprechende Zeichenposition im Ausdruck einen großgeschriebenen Buchstaben im Bereich von A bis Z enthält. Mehrere Bereiche können innerhalb der Klammern ohne Trennzeichen angegeben werden. Bei [a-zA-Z0-9] werden z.B. Entsprechungen mit allen alphanumerischen Zeichen erkannt.

Es gelten einige weitere wichtige Regeln für den Mustervergleich:

  • Ein Ausrufezeichen (!) am Anfang von Zeichenliste bedeutet, dass eine Entsprechung erkannt wird, wenn ein Zeichen in Ausdruck gefunden wird, das nicht in Zeichenliste enthalten ist. Außerhalb eckiger Klammern wird das Ausrufezeichen selbst erkannt.
  • Der Bindestrich (-) kann entweder am Anfang (nach einem Ausrufezeichen, sofern vorhanden) oder am Ende von Zeichenliste stehen, damit der Bindestrich selbst erkannt wird. An jeder anderen Position wird der Bindestrich verwendet, um einen Bereich von ANSI-Zeichen zu kennzeichnen.
  • Wenn ein Zeichenbereich angegeben wird, müssen die Zeichen aufsteigend sortiert (A-Z oder 0-9) erscheinen. [A-Z] ist ein gültiges Muster, aber [Z-A] nicht.
  • Die Folge der Zeichen [] wird ignoriert und als Null-Zeichenfolge ("") interpretiert.

Beispiele:

Art der Entsprechung | Muster | Entsprechung | Keine Entsprechung
Mehrere Zeichen | a*a | aa, aBa, aBBBa | aBC
*ab* | abc, AABB, Xab | aZb, bac
ab* | abcdefg, abc | cab, aab
ha*o | hallo, hallihallo, hao | ho, allo
Einzelne Zeichen | a?a | aaa, a3a, aBa | aBBBa
Ha?o | halo | hallo
Einzelne Ziffern | a#a | a0a, a1a, a2a | aaa, a10a
Sonderzeichen | a[*]a | a*a | aaa
Zeichenbereich | [a-z] | f, p, j | 2, &
Außerhalb des Bereichs | [!a-z] | 9, &, % | b, a
Keine Ziffern | [!0-9] | A, a, &, ~ | 0, 1, 9
Kombination | a[!b-m]# | An9, az0, a99 | abc, aj0

Bildtyp-Einschränkung

Bildtypen, die von JoJoThumb interpretiert werden können, sind BMP, EMF, JPEG, PCD, PCX, PNG, PSD, TGA, TIFF und WMF.
Bei TIFF-Bildern darf keine Komprimierung vorhanden sein.
Bei PSD-Bildern werden die Typen Bitmap, Grayscale, Indexed, RGB, CMYK und DuoTone unterstützt.

Jedem dieser Bildtypen können Dateiarten zugewiesen werden. Dazu sind auf dem Namen des Bildtyps die rechte Maustaste zu drücken und anschließend durch Komma getrennt die gewünschten Dateiarten einzugeben. So können z.B. für JPG-Bilder die Dateiarten JPG und JPEG festgelegt werden.

Ignorieren von Bildern mit Ausdehnung kleiner ... Pixel

Es ist möglich, Bilder, deren Ausdehnung unter einer bestimmbaren Seitenausdehnung (in Pixel) liegt, von der Bearbeitung auszuschließen.


Clonen

Clonen

Dies ist der Generalschalter, über den das Clonen der Originalbilder an- bzw. abgewählt werden kann. Dadurch werden bei der Umsetzung automatisch die Quellbilder in ein neues Zielverzeichnis, das Cloneverzeichnis, kopiert. Die Thumbnailerzeugung bzw. die HTML-Präsentation wird dann im Cloneverzeichnis durchgeführt.
Beim Clonen kann zusätzlich eine Umwandlung der verschiedenen Bildformate in JPEG sowie eine einheitliche Bildgröße erzeugt werden.

Cloneverzeichnis

In einem Folgedialog ist ein Verzeichnis auszuwählen, das als neues Basisverzeichnis dienen soll.

Achtung:
Unter Windows XP steht ein erweiterter Dialog zur Verfügung, in dem auch Verzeichnisse neu erzeugt werden können. Bei den anderen Windowsversionen muss das Cloneverzeichnis vor der Auswahl vorhanden sein.

Clone-Eigenschaften

Original kopieren

Durch diesen Schalter wird veranlasst, dass die Originalbilder "einfach" kopiert werden.

Orginal als JPG kopieren

Durch diesen Schalter wird veranlasst, dass die Originalbilder in das Bildformat JPEG umgewandelt werden.

Unverändert
Ändern auf .. Pixel für ..

Es kann nun angewählt werden, ob dabei die Originalausdehnung erhalten bleiben soll, oder ob die JPEG-Bilder eine einheitliche Ausdehnung bekommen sollen.

JPG-Qualität

Die JPG-Qualität legt die Qualität der in JPEG konvertierten Bilder fest. Aufgrund der Arbeitsweise beim Erzeugen von JPEG-Bildern kann dem Auge auch bei geringerer Qualität eine fast verlustfreie Darstellung vorgegaukelt werden. Ein Wert von z.B. 75% ist in der Regel nicht wahrnehmbar.

Exif/IPTC-Informationen und Kommentare erhalten

Werden die Originalbilder als JPG-kopiert, wird hierdurch dafür gesorgt, dass eingebettete EXIF/IPTC-Daten sowie Kommentare erhalten bleiben.

Stempel erzeugen

JoJoThumb ermöglicht es, einen beliebigen Text und/oder ein Bild im geclonten Bild einzufügen; z.B. als Copyrightkennzeichnung. Dieses Feature wird durch diesen Schalter aktiviert. Anschließend können über den Optionseintrag Stempel vielfältige Einstellungen vorgenommen werden. Ist die Stempelerzeugung aktiviert, wird der Clonevorgang immer durchgeführt; die Option "Clones immer erzeugen ..." kann deshalb nicht mehr deaktiviert werden.

Clones immer erzeugen, auch wenn schon vorhanden

Bei der Umsetzung wird geprüft, ob sich im Cloneverzeichnis schon ein Bild mit gleichem Namen befindet. Ist dies der Fall, wird keine Kopie/Konvertierung vorgenommen. Mit diesem Schalter kann dies erzwungen werden; z.B. bei Veränderung der Ausdehnung.

Dateien im Cloneverzeichnis löschen

Hiermit kann der Inhalt des Cloneverzeichnisses vor einer neuen Umsetzung komplett gelöscht werden.


Stempel

Beim Clone-Prozess besteht die Möglichkeit, einen beliebigen Text und/oder Bild in das geclonte Bild einzufügen. So können Kennzeichnungen z.B. für Copyrightzwecke vorgenommen werden. Sowohl für den Textstempel als auch den Bildstempel stehen diverse Gestaltungsmöglichkeiten zur Verfügung.

In das Bild wird der Text eingearbeitet, der zum Zeitpunkt des clonens des jeweiligen Bildes als Inhalt in der JoJoScript-Variablen stamp_text gespeichert ist.
In das Bild wird das Bild eingearbeitet, das zum Zeitpunkt des clonens des jeweiligen Bildes als Inhalt in der JoJoScript-Variablen stamp_image gespeichert ist.

Diese beiden Variablen können durch folgende Möglichkeiten sinnvoll mit Inhalt belegt werden.

  • Im Dialog über die Elemente Text und Bild
  • In der JoJoScript-Init-Funktion _init, die zu Beginn einer Umsetzung einmalig ausgeführt wird
  • In der JoJoScript-Funktion _stamp, die bei jedem Clonen eines Bildes ausgeführt wird. Hier kann z.B. die Variable stamp_text mit dem Namen des aktuellen Bildes belegt werden.

Textstempel

Text

Hier kann der Text eingegeben werden, der in der JoJoScript-Variablen stamp_text abgespeichert wird,

Schriftart

Hier kann die Schriftart ausgewählt werden, mit der der Textstempel ausgegeben wird.

Schrifthöhe

Hier kann die Schrifthöhe in Pixel für den Textstempel festgelegt werden.

Schriftfarbe

In einem Folgedialog kann die Farbe für den Textstempel festgelegt werden.

Position

In diesem Auswahlelement können bis zu 9 Positionen für die Festlegung des Ausgabeortes des Textstempels gewählt werden. Durch die Angabe eines Offsets kann diese Positionierung noch verfeinert werden; z.B. rechts oben, aber 10 Pixel vom oberen Rand und 15 Pixel vom rechten Rand.

Deckkraft

Hier kann die Deckkraft des Textstempels im Bild eingestellt werden. Eine Deckkraft von 100% ist volldeckend, 10% sind fast durchscheinend.

Bildstempel

Bild

Hier kann in einem Folgedialog das Bild ausgewählt werden, das in der JoJoScript-Variablen stamp_image abgespeichert wird,

Transparentfarbe

In einem Folgedialog kann eine Farbe ausgewählt werden, die im Bildstempel transparent gesetzt wird.

Position

In diesem Auswahlelement können bis zu 9 Positionen für die Festlegung des Ausgabeortes des Bildstempels gewählt werden. Durch die Angabe eines Offsets kann diese Positionierung noch verfeinert werden; z.B. rechts oben, aber 10 Pixel vom oberen Rand und 15 Pixel vom rechten Rand.

Deckkraft

Hier kann die Deckkraft des Bildstempels im Bild eingestellt werden. Eine Deckkraft von 100% ist volldeckend, 10% sind fast durchscheinend.


JoJoScript

Eigene JoJoScript-Funktionen

In diesem Dialogzweig können eigene JoJoScript-Funktionen formuliert werden, die dann bei Erzeugung der HTML-Seiten genutzt werden können.

neu

Anschließend ist in einem weiteren Dialog der Name der neu zu erstellenden Funktion einzugeben. Die Namenskonvention für Funktionsnamen von JoJoScript ist zu beachten.

löschen

Löschen der aktuell angezeigten JoJoScript-Funktion.

Funktion

Hier kann eine schon erstellte Funktion zur Ansicht bzw. zur weiteren Bearbeitung ausgewählt werden.

Parameterliste

Die Parameter der aktuellen Funktion.
Die einzelnen Parameter sind durch Komma zu trennen.

Funktionskörper

Inhalt der JoJoScript-Funktion. Hier können Funktionen entsprechend der Sprachmittel von JoJoScript ausformuliert werden.

JoJoScript-Init-Funktion

Eine besondere Bedeutung hat die JoJoScript-Funktion _init. Ist sie vorhanden, wird sie einmalig zu Beginn einer Umsetzung zur Ausführung gebracht wird. So können sinnvolle globale Variable, die in weiteren JoJoScript-Funktionen bzw. HTML-Tags der HTML-Seiten benutzt werden sollen, mit Inhalt gefüllt werden.

Syntaxtest

Nach Betätigen dieses Knopfes wird ein Syntaxtest der aktuellen Funktion durchgeführt. Syntaxfehler werden gemeldet. Der Status dieses Tests ist im Dialogelement Compiler-Status zu erkennen.
Bei einem Fehler werden in einem Meldungsdialog die Art des Fehlers sowie die Position ausgegeben.


Thumbnails

Verzeichnis
Thumbnails immer erzeugen, auch wenn schon vorhanden
vorhandene Dateien im Thumbnailverzeichnis löschen

Es ist ein Verzeichnisname anzugeben, in dem die Thumbnails der Quellbilder abgelegt werden. Dieses Verzeichnis wird im Basisverzeichnis angelegt.

Als Option kann bestimmt werden, ob vorhandene Dateien in den Thumbnailverzeichnissen gelöscht werden sollen und ob aus dem Originalbild immer neue Thumbnails erzeugt werden sollen, auch, wenn schon ein Thumbnail vom Originalbild vorhanden ist (falls dies nicht angewählt wird, beschleunigt es den Programmablauf erheblich).

Achtung:
Es muss ein Thumbnailverzeichnis angegeben werden. Standardmäßig wird als Verzeichnisname "thumbs" benutzt.

Ausdehnungsfestlegungen

Über diese Optionen kann die Größe des Thumbnails festgelegt werden.
Die Angabe der Ausdehnung ist in Pixel und bezieht sich auf

  • die längste Seite des Originalbildes
  • die Breite des Originalbildes
  • die Höhe des Originalbildes

Thumbnails vergrößern wenn Bildgröße < Thumbnailgröße

In der Regel sind die entstehenden Thumbnails in der Ausdehnung kleiner als die Quellbilder. Quellbilder, die in der Ausdehnung schon kleiner als die Thumbnails sind, werden in ihrer Ausdehnung nicht verändert. Falls dies doch gewünscht wird (also das Vergrößern auf die Ausdehnung der Thumbnails), kann dies durch einen Schalter erzwungen werden.

JPEG-Qualität

JPEG-Qualität legt die Qualität der erzeugten Thumbnails fest. Aufgrund der Arbeitsweise beim Erzeugen von JPEG-Bildern kann dem Auge auch bei geringerer Qualität eine fast verlustfreie Darstellung vorgegaukelt werden. Ein Wert von z.B. 60% ist in der Regel nicht wahrnehmbar, insbesondere dann nicht, wenn es sich, wie hier bei den Thumbnails, um nicht unwesentliche Verkleinerungen handelt.


HTML-Festlegungen

In diesem Dialogzweig können Eigenschaften von optionalen HTML-Dokumenten näher definiert werden.

HTML-Seiten erzeugen

Dies ist der Generalschalter, über den die Erzeugung von HTML-Seiten an- bzw. abgewählt werden kann.
Zusätzlich muss, falls eine Erzeugung der HTML-Indexseite bzw. der HTML-Bildseiten stattfinden soll, dies in den Optionsdialogen Index-Dokument bzw. Bild-Dokument eingeschaltet werden.

HTML-Verzeichnis

Es ist der Name eines Verzeichnisses anzugeben, in dem die HTML-Präsentation erzeugt wird. Dieses Verzeichnis wird im Basisverzeichnis angelegt.

Achtung:
Es muss ein HTML-Verzeichnisname angegeben werden. Standardmäßig wird als Verzeichnisname "html" benutzt.

Dateien im HTML-Verzeichnis löschen

Alle vorhandenen Dateien in den bei der Umsetzung genutzten HTML-Verzeichnissen werden gelöscht

Erzeugung unterdrücken, wenn unverändert

Bei Aktivierung werden nur dann HTML-Dateien (Index, Thumbnail oder Bild) erstellt, wenn sich zum vorherigen Inhalt eine Veränderung ergeben hat.
Hierdurch kann der Upload der HTML-Galerien auf ein Minimum reduziert werden. Dies wird allerdings durch einen etwas höheren Zeitaufwand bei der Umsetzung mit JoJoThumb erkauft (der Inhalt der bisherigen HTML-Datei muss eingelesen werden).

HTML-Dateiart

Festlegung der Dateiart der zu erstellenden HTML-Dokumente. Sinnvoll sind htm oder html.

Bildsortierung

Ausdehnung
Bytes
Datum
Name
Unsortiert
Zufall

Hier kann ein Sortierkriterium für die Ausgabereihenfolge der Bilder innerhalb eines Verzeichnisses festgelegt werden.

Aufsteigend
Absteigend

Wurden als Sortierkriterium Ausdehnung, Bytes, Datum oder Name gewählt, kann hier die Sortierrichtung ausgwählt werden.

Angaben zum Dokumententyp

Die hier gemachten Angaben werden in jeder von JoJoThumb erzeugten HTML-Seite vor dem einleitenden HTML-Tag ausgegeben. So kann z.B. die empfohlene Angabe des Dokumententyps erzeugt werden.

Beispiel:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Exif/IPTC-Informationen und Kommentare verfügbar machen

EXIF
In JPG- oder TIF-Bildern, die von Digitalkameras erzeugt wurden, sind in einem speziellen Datenbereich diverse Informationen abgelegt. Dies sind z.B. Name des Kameraherstellers, des Kameramodells, der Belichtungszeit, der Blende, des Tags der Aufnahme und vieles mehr.

IPTC
????

Kommentare
In JPG-Bildern können weitere allgemeine Informationen abgelegt werden.

Damit diese Informationen, deren Gewinnung einen zusätzlichen Aufwand bedeutet, zur Verfügung stehen (sie können mit einigen speziellen JoJoThumb-Funktionen angefordert werden), muss dies durch diesen Schalter aktiviert werden.

JoJoThumb Copyrightnotiz

Am Ende jeder HTML-Seite wird als Voreinstellung eine Notiz ausgegeben, dass diese Seite mit JoJoThumb erstellt wurde. Mit diesem Schalter kann dies ausgeschaltet werden.

Browser automatisch starten

Hiermit kann nach der Umsetzung der Bilder und dem Erstellen der HTML-Seiten automatisch der eingestellte Standard-HTML-Browser gestartet werden.
Wurde eine HTML-Indexseite erzeugt, wird diese angezeigt ansonsten die erste erzeugte HTML-Thumbnail-Seite.


HTML-Festlegungen

HTML-Deko-Angaben

In der Regel werden für eine ansprechende HTML-Aufbereitung weitere Gestaltungselemente benötigt. Dies sind z.B. Hintergrundbilder, Navigationspfeile und Bilder zur Rahmengestaltung.

Da Deko-Elemente in einer HTML-Präsentation durch relative Verweise angesprochen werden, müssen sie sich nach der Erzeugung der HTML-Präsentation durch JoJoThumb im Basisverzeichnis befinden.
Deko-Elemente sollten aus Übersichtsgründen in einem Verzeichnis zusammengefasst werden. JoJoThumb ermöglicht es dann, über eine globale JoJoScript-Variable komfortabel auf Inhalte dieses Verzeichnisses zuzugreifen.

Deko-Verzeichnis

Hier kann der Name dieses Verzeichnisses angegeben werden.

Achtung:
Es muss ein Deko-Verzeichnis angegeben werden. Standardmäßig wird als Verzeichnisname "deco" benutzt.
Über die globale Variable "deco_ref" ist der Name des genutzten Deco-Verzeichnisses als relativer Pfad abrufbar.

Deko-Pool nutzen
Deko-Dateien immer kopieren, auch wenn schon vorhanden
Deko-Pool
Deko-Quelle

Um die Original-Deko-Elemente zu schützen, aber auch für andere HTML-Gallerien oder durch andere Profile nutzen zu können, sollten sie an zentraler Stelle in einem Verzeichnis zusammengefasst werden, der Deko-Quelle. Mehrere dieser Deko-Quellen bilden einen Deko-Pool.

Anmerkung:
Im Installationsverzeichnis von JoJoThumb ist schon der Deko-Pool "decopool" zu finden, der beispielhaft einige Deko-Quellen enthält.

Durch den Schalter Deko-Pool nutzen kann nun auf die Deko-Quellen des Deko-Pools zurückgegriffen werden.
Nach der Auswahl einer Deko-Quelle werden alle Dateien dieses Deco-Quellverzeichnisses, wenn sie noch nicht im Deko-Verzeichnis vorhanden sind, in das Deko-Verzeichnis kopiert.
Dies kann durch den Schalter Deko-Dateien immer kopieren, auch wenn schon vorhanden, erzwungen werden.


Festlegungen Index-Dokument

HTML-Indexseite erzeugen

Durch diesen Schalter kann ein weiterer Optionenbereich aktiviert werden, durch den es möglich ist, die Erstellung eines HTML-Index-Dokuments zu erreichen. Hauptbestandteil dieses HTML-Dokuments ist eine Tabelle, deren Einträge Links auf alle durch die Umsetzung entstandenen HTML-Thumbnailseiten sind. Um eine möglichst große Gestaltungsvielfalt zu erhalten, kann in einem Unterdialog eine Beschreibung des Aussehens des HTML-Indexdokuments vorgenommen werden.

Index-Dateiname

Das Indexdokument wird im Basisverzeichnis unter dem eingetragenen Namen erzeugt.

Index im Basisverzeichnis

Hier kann festgelegt werden, dass das Index-Dokument direkt im Basisverzeichnis und nicht im html-Verzeichnis erstellt wird

Verzeichnisgruppierung

Hiermit wird auf der Indexseite eine eigenständige Tabelle je Verzeichnis erzeugt. Dies beinhaltet den Tabellentitel, die Indexeinträge und die Tabellenbeschreibung.

Indexeinträge je Zeile

Da in einer "Zeile", nicht beliebig viele Indexeinträge dargestellt werden können, kann hier angegeben werden, nach wie vielen Einträgen eine neue "Zeile" beginnen soll.

Erstelldatum

Hier kann bestimmt werden, ob am unteren Rand des Indexdokuments, vor der Copyrightnotiz, das aktuelle Datum als Erstelldatum ausgegeben werden soll.


Festlegungen Thumbnail-Dokument

Dateiname-Basis

Wurde im Startdialog als Auswerteverzeichnis "Basisverzeichnis" (=das aktuelle Verzeichnis) gewählt, kann hierdurch der Name des Dokuments festgelegt werden (ohne Dateiart; diese wird der allgemeinen Festlegung "Dateiart der HTML-Dateien" entnommen).

Wurde im Startdialog als Auswerteverzeichnis "Unterverzeichnisse" oder "UnterUnterVerzeichnisse" ausgewählt, kann hier kein Eintrag vorgenommen; der Name des Dokuments ist dann der Name des Unterverzeichnisses bzw. des UnterUnterVerzeichnisses mit angehängter HTML-Dateiart.

Thumbnailverteilung

Thumbnails je Zeile

Da in einer "Zeile", durch die Ausdehnung der Thumbnails bedingt, natürlich nicht beliebig viele Thumbnails dargestellt werden können, kann hier angegeben werden, wie viele Thumbnails je Zeile auszugeben sind.

Hierbei ist auch daran zu denken, bei welcher Bildschirmauflösung dieses Dokument später betrachtet werden soll.

alle Thumbnails auf eine Seite

Falls dieser Schalter aktiviert wird, werden alle Thumbnails in einem Dokument erzeugt.

neue Seite nach ... Zeilen

Falls dieser Schalter aktiviert wird, kann die Anzahl der Zeilen angegeben werden, nach der ein neues HTML-Dokument erzeugt werden soll.

Der Name des Dokuments wird dann um eine fortlaufende Nummerierung, mit zwischengesetztem "-" erweitert. Z.B. bilder-1.html, bilder-2.html, bilder-3.html.

Sinnvollerweise sollten, wenn diese Option genutzt wird, im Abschnitt "Querverweise" des Dialogs „HTML-Thumbnail-Dokument" Angaben sein, da sonst in den entstehenden Dokumenten keine Verweise zwischen den einzelnen Dokumenten erstellt werden.

Navigationselemente

erweiterte Navigation

Durch aktivieren der erweiterten Navigation stehen bei Festlegung der Navigationselemente in der HTML-Thumbnail-Seitendefinition zusätzliche Elemente zur Verfügung.

über Tabellentitel
über Seitenbeschreibung
unter Seitenbeschreibung

Hier kann die Position der Verweise innerhalb der HTML-Thumbnail-Seitendefinition festgelegt werden. Möglich ist eine Position zwischen dem Seitentitel und dem Tabellentitel sowie über oder unter der Seitenbeschreibung. Die Verortung wird im Dialog HTML-Thumbnail-Seitendefinition entsprechend der Schalterstellung ausgewiesen. Bei Mehrfachauswahl wird aus Platzgründen nur die oberste Position angezeigt.

Erstelldatum

Hier kann bestimmt werden, ob am unteren Rand aller Thumbnaildokumente, vor der Copyrightnotiz, das aktuelle Datum als Erstelldatum ausgegeben werden soll.


Festlegungen Bild-Dokument

HTML-Bildseite erzeugen

Durch diesen Schalter kann ein weiterer Optionenbereich aktiviert werden, durch den es möglich ist, die Erstellung eines HTML-Bilddokuments zu erzielen. Hauptbestandteil dieses HTML-Bilddokuments ist das Quellbild. Um eine möglichst große Gestaltungsvielfalt zu erhalten, kann in einem weiteren Dialog eine Beschreibung des Aussehens des HTML-Bilddokuments vorgenommen werden.

Navigationselemente

erweiterte Navigation

Durch aktivieren der erweiterten Navigation stehen bei Festlegung der Navigationselemente in der HTML-Bild-Seitendefinition zusätzliche Elemente zur Verfügung.

über Bildtitel
über Bildbeschreibung
unter Bildbeschreibung

Hier kann die Position der Verweise innerhalb der HTML-Bild-Seitendefinition festgelegt werden. Möglich ist eine Position zwischen dem Seitentitel und dem Bildtitel sowie über oder unter der Bildbeschreibung. Die Verortung wird im Dialog HTML-Bild-Seitendefinition entsprechend der Schalterstellung ausgewiesen. Bei Mehrfachauswahl wird aus Platzgründen nur die oberste Position angezeigt.

Navigation

Über diesen Schalter kann das Verhalten der Vorgänger/Nachfolgerverweise eingestellt werden, wenn Bilder aus mehreren Verzeichnissen benutzt werden.
Mit der Einstellung fortlaufend wird beim ersten Bild des Verzeichnisses auf das letzte Bild des Vorgängerverzeichnisses und beim letzten Bild des Verzeichnisses auf das erste Bild des Folgeverzeichnisses weitergeschaltet.
Mit der Einstellung umlaufend wird beim ersten Bild des Verzeichnisses auf das letzte Bild des Verzeichnisses und beim letzten Bild des Verzeichnisses auf das erste Bild des Verzeichnisses weitergeschaltet.
Mit der Einstellung begrenzt wird beim ersten Bild des Verzeichnisses kein Vorgängerverweis und beim letzten Bild des Verzeichnisses kein Nachfolgerverweis erzeugt.

Erstelldatum

Hier kann bestimmt werden, ob am unteren Rand aller Bild-Dokumente, vor der Copyrightnotiz, das aktuelle Datum als Erstelldatum ausgegeben werden soll.


HTML-Seitenlayout

Allgemeines zum HTML-Seitenlayout

Der Aufbau eines Dokuments auf der Basis von Thumbnails, deren Quellbildern und weiteren textuellen und graphischen Ergänzungen ist auf vielfältige Weise steuerbar. Allerdings ist, wenn alle Möglichkeiten ausgeschöpft werden sollen, ein Grundwissen über HTML nötig. Syntaktische Fehler werden von JoJoThumb nicht erkannt, so dass auch ein ausreichendes Maß an Sorgfalt an die Definition des Aufbaus des Dokuments verwendet werden sollte. In der Regel sind solche Fehler beim Betrachten des Dokuments mit einem HTML-Browser erkennbar und so auch korrigierbar.

Ändern und Erstellen von Elementen des HTML-Seitenlayout

Durch einen Mausklick über dem Element, das verändert werden soll, wird die HTML-Seitendefinition im unteren Dialog in einem Eingabebereich verfügbar, wo sie dann angepasst werden kann. Zusätzlich werden beim „Überfahren" der vorhandenen HTML-Elemente mit der Maus im unteren Bereich die aktuellen Definitionen ausgegeben.
Der Inhalt der HTML-Elemente muss den Regeln der Scriptsprache JoJoScript entsprechen. Damit dies gewährleistet ist, kann eine Syntaxüberprüfung durchgeführt werden. Diese Überprüfung wird automatisch beim Aufstarten der Umsetzung durchgeführt.

Bei einem Fehler werden in einem Meldungsdialog die Art des Fehlers sowie die Position ausgegeben.

Verweise auf andere HTML-Dokumente

Sollen Referenzen auf Dateien in hierarchisch höheren oder gleichhohen Verzeichnissen aufgebaut werden, so ist dies durch relative Adressierung möglich.

In der Abbildung des Basisdialogs ist als "Basisverzeichnis" e:\JoJoThumb\Exif angewählt.

Sollen Dateien im "übergeordneten" Verzeichnis e:\JoJoThumbTest angesprochen werden, so ist als Pfad ein "../" vor den Dateinamen zu setzen.

Sollen Dateien im "gleichhohen" Verzeichnis e:\JoJoThumbTest\demo1 angesprochen werden, so ist als Pfad ein "../demo1" vor den Dateinamen zu setzen. Zu beachten ist der "/" statt des üblichen "\" als Trennzeichen zwischen Verzeichnisnamen. Relative Adressierung ist nicht über Laufwerke hinweg möglich.

Ersatzdarstellung von { und }

In den einzelnen Elementen können die geschweiften Klammer "{" und "}" nicht als Textzeichen benutzt werden; sie sind für die Kennzeichnung von JoJoScript-Anweisungen zuständig. Dies trifft z.B. bei der Nutzung von Javascript zu.
Allerdings können die geschweiften Klammern durch die Eingabe einer Ersatzdarstellung angesprochen werden. Dies sind ~< für { sowie ~> für }. Bei der Erstellung der HTML-Dokumente werden diese Ersatzdarstellungen in die geschweiften Klammern umgewandelt.


HTML-Index-Seitendefinition

Im Dialog für die HTML-Index-Seitendefinition sind alle Komponenten zu finden, die für den Aufbau eines Indexdokuments benötigt werden und als zentrales Element eine Tabelle mit Einträgen der erstellten Thumbnail-Dokumente beinhaltet.

Dokumentenkopf

Text, der hier angegeben wird, wird nur für die Verwaltung des Indexdokuments benötigt; er wird im HEAD-Abschnitt, vor dem </HEAD>-Tag abgelegt.

Beispiel:
<style type="text/css">
a:link ~<color:#0000FF; text-decoration:none~>
a:visited ~<color:#0000FF; text-decoration:none~>
a:active ~<color:#0000FF; text-decoration:none~>
</style>

Dokumententitel

Text, der hier angegeben wird, wird nur für die Verwaltung des Indexdokuments benötigt; er wird durch einen HTML-Browser in der Titelzeile dargestellt.

Beispiel:
Bild vom {Cur_Date}

Dokument-Hintergrund (Body)

Text, der hier angegeben wird, dient für das Anpassen des Aussehens des Hintergrundes und des Farbschemas des Indexdokuments. Sinnvolle Einträge sind z.B.:

Background="dateiname"
Bgcolor="#rrggbb"
Text="#rrggbb"
Link="#rrggbb"
Alink="#rrggbb"
Vlink="#rrggbb"

Wobei Dateiname der Name der Datei ist, die ein Hintergrundbild beinhaltet.
Wobei rr, gg und bb den Farbwert der Grundfarben von 0 bis 255 (hexadezimal) angibt.

Beispiel:
Background="{deco_ref}/hintergrund.gif" Link="#FF0000" Vlink="#0000FF"

Seitentitel

Hier kann ein Seitentitel für das Indexdokument festgelegt werden.

Beispiel:
Bilder Anzahl: {COUNT_ALL_FILES}

Verzeichnisgruppierung

Wurde im Optionendialog Index-Dokument die Verzeichnisgruppierung aktiviert, wird für jedes Verzeichnis ein eigenständiger Tabellenblock mit Tabellentitel, Tabellendefinition, Tabellenzellendefinition, Indexeintrag und Tabellenbeschreibung erzeugt. In diesem Fall stehen diverse JoJoThumb-Variable, die ein Verzeichnis betreffen, mit entsprechendem Inhalt zur Verfügung.
Wurde die Verzeichnisgruppierung nicht aktiviert, wird für alle Verzeichnisse ein Tabellenblock erzeugt.

Tabellentitel

Hier können HTML-Elemente eingebracht werden, die vor der Indextabelle ausgegeben werden.

Beispiel:
Bilderanzahl. {COUNT_ALL_FILES}

Tabellendefinition

Alle Indexeinträge werden in einer Tabelle abgelegt. Für diese Tabelle können einige Festlegungen getroffen werden. Dies sind z.B. die Rahmenstärke für die Gesamttabelle, der Abstand zwischen den einzelnen Zellen der Tabelle und der Abstand zwischen dem Inhalt der Zelle und dem Rand der Zelle.

Beispiel:
align="center" border="0" cellspacing="0" cellpadding="5"

Tabellenzellendefinition

Hier können Einstellungen einer Tabellenzelle gemacht werden. Dies können z.B. die Festlegung der horizontalen Ausrichtung des Inhalts einer Tabellenzelle oder die Breite der Tabellenzelle in Pixel sein.

Beispiel:
align="center" width="105"

Indexeintrag

Text, der hier angegeben wird, steuert die Aufbereitung der einzelnen Indexeinträge.

Beispiel:
Anmerkungen<br>{read("d:\texte\"+mid(doc,1,5)+".txt")}

Tabellenbeschreibung

Hier können HTML-Elemente eingebracht werden, die nach der Indextabelle ausgegeben werden.

Seitenbeschreibung

Hier können HTML-Elemente eingebracht werden, die nach der Indextabelle ausgegeben werden.

Beispiel:
Anmerkungen<br>{read("d:\texte\"+mid(doc,1,5)+".txt")}

Seitenabschluss

Hier können HTML-Elemente eingebracht werden, die am Ende der HTML-Seite (unmittelbar vor dem </body> Tag) ausgegeben werden sollen; also auch nach der optionalen Ausgabe des Erstelldatums bzw. der Copyrightnotiz.


HTML-Thumbnail-Seitendefinition

Im Dialog für die HTML-Thumbnail-Dokumentdefinition sind alle Komponenten zu finden, die für den Aufbau eines Dokuments benötigt werden und als zentrales Element eine Tabelle mit den vorher erstellten Thumbnails beinhaltet.

Dokumentenkopf

Text, der hier angegeben wird, wird nur für die Verwaltung des Thumbnaildokuments benötigt; er wird im HEAD-Abschnitt, vor dem </HEAD>-Tag abgelegt.

Beispiel:
 <style type="text/css">
a:link ~<color:#0000FF; text-decoration:none~>
a:visited ~<color:#0000FF; text-decoration:none~>
a:active ~<color:#0000FF; text-decoration:none~>
</style>

Dokumententitel

Text, der hier angegeben wird, wird nur für die Verwaltung des Thumbnaildokuments benötigt; er wird durch einen HTML-Browser in der Titelzeile dargestellt.

Beispiel:
Bilderübersicht vom {Cur_Date}

Dokument-Hintergrund (Body)

Text, der hier angegeben wird, dient für das Anpassen des Aussehens des Hintergrundes und des Farbschemas des Thumbnaildokuments. Sinnvolle Einträge sind z.B.:

Background="dateiname"
Bgcolor="#rrggbb"
Text="#rrggbb"
Link="#rrggbb"
Alink="#rrggbb"
Vlink="#rrggbb"

Wobei Dateiname der Name der Datei ist, die ein Hintergrundbild beinhaltet.
Wobei rr, gg und bb den Farbwert der Grundfarben von 0 bis 255 (hexadezimal) angibt.

Beispiel:
Background="{deoc_ref}/hintergrund.gif" Link="#FF0000" Vlink="#0000FF"

Seitentitel

Hier kann eine Überschrift für das Thumbnaildokument festgelegt werden. Sie wird zentriert über der Bildertabelle ausgegeben.

Beispiel:
Bilder im Verzeichnis {DOC}

Navigationselemente

Sie dienen zur Aufbereitung von Querverweisen für den Fall, dass Unterverzeichnisse oder Unterunterverzeichnisse ausgewählt wurden oder durch die Angabe einer maximalen Anzahl von Zeilen/Thumbnails je Seite mehrere Thumbnaildokumente entstehen.
Je nach Auswahl im Dialog "Thumbnail-Dokument" stehen eine einfache oder erweiterte Navigation zur Verfügung.

Mit der einfache Navigation stehen Beschreibungselemente für das vorherige Thumbnaildokument, den Index und das nachfolgende Thumbnaildokument zur Verfügung.

Mit der erweiterten Navigation besteht zusätzlich Zugriff auf das Gesamterste/letzte Thumbnaildokument, das Verzeichniserste/letzte Thumbnaildokument sowie die Möglichkeit vor und hinter den Navigationselementen zusätzliche Angaben zu machen.

Achtung:
Die einzelnen Navigationselemente werden nur dann in das Thumbnaildokument geschrieben, wenn sie benötigt werden. Der Verweis auf das vorherige Thumbnaildokument wird also nicht erzeugt, wenn es kein vorheriges Thumbnaildokument gibt.

Erläuterung von links nach rechts anhand der erweiterten Navigation:

Navigations-Vorspann

Hier können Angaben gemacht werden, die vor allen Navigationselementen in das Thumbnaildokument geschrieben werden.

Beispiel:
 <div align="center">

Gesamterstes Dokument

Beispiel:
<a href="{first_ref}"><img src="{deco_ref}/gesamtanfang.gif" border="0" alt="{first_doc}"></a>

erstes Dokument des Verzeichnisses

Beispiel:
<a href="{first_path_ref}"><img src="{deco_ref}/pfadanfang.gif" border="0" alt="{first_path_doc}"></a>

vorheriges Dokument

Beispiel:
<a href="{prev_ref}">{prev_doc} <img src="{deco_ref}/links.gif" border="0" alt="{prev_doc}"></a>

Index-Dokument

Beispiel:
<a href="{up_ref}"><img src="{deco_ref}/hoch.gif" border="0" alt="{up_doc}"></a>

nachfolgendes Dokument

Beispiel:
<a href="{next_ref}"><img src="{deco_ref}/rechts.gif" border="0" alt="{next_doc}"> {next_doc}</a>

letztes Dokument des Verzeichnisses

Beispiel:
<a href="{last_path_ref}"><img src="{deco_ref}/pfadende.gif" border="0" alt="{last_path_doc}"></a>

Gesamtletztes Dokument

Beispiel:
<a href="{last_ref}"><img src="{deco_ref}/gesamtende.gif" border="0" alt="{last_doc}"></a>

Navigations-Nachspann

Hier können Angaben gemacht werden, die vor allen Navigationselementen in das Thumbnaildokument geschrieben werden.

Beispiel:
 </div>

Tabellentitel

Hier können HTML-Elemente eingebracht werden, die vor der Bildertabelle ausgegeben werden.

Tabellendefinition

Alle Thumbnails werden in einer Tabelle abgelegt. Für diese Tabelle können einige Festlegungen getroffen werden. Dies sind z.B. die Rahmenstärke für die Gesamttabelle, der Abstand zwischen den einzelnen Zellen der Tabelle und der Abstand zwischen dem Inhalt der Zelle und dem Rand der Zelle.

Beispiel:
 border="0" cellspacing="0" cellpadding="5"

Tabellenzellendefinition

Hier können Einstellungen einer Tabellenzelle gemacht werden. Dies können z.B. die Festlegung der horizontalen Ausrichtung des Inhalts einer Tabellenzelle oder die Breite der Tabellenzelle in Pixel sein.

Beispiel:
 align="center" width="105"

Bildfestlegungen

Hier können Festlegungen über den Inhalt der Zellen der Thumbnailtabelle gemacht werden.
Sinnvollerweise sollte hier als Platzhalter für das Originalbild ein Thumbnail ausgegeben werden, das einen Verweis auf das Originalbild "besitzt", so dass beim anklicken des Thumbnails das Originalbild bzw. die mit dem Originalbild verbundene Thumbnailseite durch den HTML-Browser geladen wird.
Zusätzlich können weitere Festlegungen, wie ein Rahmen um das Thumbnail, ein Tooltip oder Bildbeschriftungen angegeben werden.

Beispiel:
Im folgenden Beispiel wird ein Thumbnail in einer Thumbnailtabellenzelle ausgegeben. Unter dem Thumbnail wird der Name des Quellbildes, darunter die Dateigröße des Quellbildes und darunter die Ausdehnung des Quellbildes ausgegeben. Das Thumbnail und der Name des Quellbildes verweisen (Hyperlink) auf das Originalbild.

<a href="{src_ref}"><img src="{thumb_ref}"
border="0" alt="{DOC}"><br>
<font size="1">{DOC}</a><br>
{SIZE_BYTE}<br>{DIM}<font>

  • Beginn des Verweises auf das Originalbild (<a href="{src_ref}">)
  • Name des Thumbnails (<img src="{thumb_ref}")
  • kein Rahmen um das Thumbnail (border="0")
  • Tooltiptext (bei Berührung des Thumbnails mit der Maus) ist der Name des Quellbildes (alt="{doc}")
  • die textuellen Beschreibungen werden in einer gewünschten Schriftgröße ausgegeben (<font size="1">)
  • Ausgabe des Namens des Quellbildes ({doc})
  • Ende des Verweises auf das Originalbild (</a>)
  • Zeilenumbruch (<br>)
  • Dateigröße des Originalbildes ({SIZE_BYTE})
  • Ausdehnung des Originalbildes ({DIM})

Seitenbeschreibung

Hier können HTML-Elemente eingebracht werden, die nach der Bildertabelle ausgegeben werden.

Beispiel:
 Anmerkungen<br>{read("d:\texte\"+mid(doc,1,5)+".txt")}

Seitenabschluss

Hier können HTML-Elemente eingebracht werden, die am Ende der HTML-Seite (unmittelbar vor dem </body> Tag) ausgegeben werden sollen; also auch nach der optionalen Ausgabe des Erstelldatums bzw. der Copyrightnotiz.


HTML-Bild-Seitendefinition

Soll bei der Anwahl eines Thumbnails im HTML-Thumbnail-Dokument nicht nur das damit verbundene Bild mit dem HTML-Browser angezeigt werden, sondern das Bild Bestandteil einer eigenen HTML-Seite sein, kann dies über den Eintrag "Bild-Dokument" eingestellt werden.

Dokumentenkopf

Text, der hier angegeben wird, wird nur für die Verwaltung des HTML-Dokuments benötigt; er wird im HEAD-Abschnitt, vor dem </HEAD>-Tag abgelegt.

Beispiel:
 <style type="text/css">
a:link ~<color:#0000FF; text-decoration:none~>
a:visited ~<color:#0000FF; text-decoration:none~>
a:active ~<color:#0000FF; text-decoration:none~>
</style>

Dokumententitel

Text, der hier angegeben wird, wird nur für die Verwaltung des HTML-Dokuments benötigt; er wird durch einen HTML-Browser in der Titelzeile dargestellt.

Beispiel:
Bild vom {Cur_Date}

Dokument-Hintergrund (Body)

Text, der hier angegeben wird, dient für das Anpassen des Aussehens des Hintergrundes und des Farbschemas des HTML-Dokuments. Sinnvolle Einträge sind z.B.:

Background="dateiname"
Bgcolor="#rrggbb"
Text="#rrggbb"
Link="#rrggbb"
Alink="#rrggbb"
Vlink="#rrggbb"

Wobei Dateiname der Name der Datei ist, die ein Hintergrundbild beinhaltet.
Wobei rr, gg und bb den Farbwert der Grundfarben von 0 bis 255 (hexadezimal) angibt.

Beispiel:
Background="{deco_ref}/hintergrund.gif" Link="#FF0000" Vlink="#0000FF"

Seitentitel

Hier kann eine Überschrift für das Bilddokument festgelegt werden.

Beispiel:
 Bilder Nr. {COUNT_CUR_ALL_FILES}

Navigationselemente

Sie dienen zur Aufbereitung von Querverweisen zwischen den einzelnen Bilddoukmenten.
Je nach Auswahl im Dialog "Bild-Dokument" stehen eine einfache oder erweiterte Navigation zur Verfügung.

Mit der einfache Navigation stehen Beschreibungselemente für das vorherige Bilddokument, den Index und das nachfolgende Bilddokument zur Verfügung.

Mit der erweiterten Navigation besteht zusätzlich Zugriff auf das Gesamterste/letzte Bilddokument, das Verzeichniserste/letzte Bilddokument, das Seitenerste/letzte Bilddokument sowie die Möglichkeit vor und hinter den Navigationselementen zusätzliche Angaben zu machen.

Achtung:
Die einzelnen Navigationselemente werden nur dann in das Dokument geschrieben, wenn sie benötigt werden. Der Verweis auf das vorherige Bilddokument wird also nicht erzeugt, wenn es kein vorheriges Bilddokument gibt.

Erläuterung von links nach rechts anhand der erweiterten Navigation:

Navigations-Vorspann

Hier können Angaben gemacht werden, die vor allen Navigationselementen in das Bilddokument geschrieben werden.

Beispiel:
 <div align="center">

Gesamterstes Bilddokument

Beispiel:
<a href="{first_ref}"><img src="{deco_ref}/gesamtanfang.gif" border="0" alt="{first_doc}"></a>

erstes Bilddokument des Verzeichnisses

Beispiel:
<a href="{first_path_ref}"><img src="{deco_ref}/pfadanfang.gif" border="0" alt="{first_path_doc}"></a>

erstes Bilddokument der Seite

Beispiel:
<a href="{first_page_ref}"><img src="{deco_ref}/seitenanfang.gif" border="0" alt="{first_page_doc}"></a>

vorheriges Bilddokument

Beispiel:
<a href="{prev_ref}">{prev_doc} <img src="{deco_ref}/links.gif" border="0" alt="{prev_doc}"></a>

zugehöriges Thumbnail-Dokument

Beispiel:
<a href="{up_ref}"><img src="{deco_ref}/hoch.gif" border="0" alt="{up_doc}"></a>

nachfolgendes Bilddokument

Beispiel:
<a href="{next_ref}"><img src="{deco_ref}/rechts.gif" border="0" alt="{next_doc}"> {next_doc}</a>

letztes Bilddokument der Seite

Beispiel:
<a href="{last_page_ref}"><img src="{deco_ref}/pfadende.gif" border="0" alt="{last_page_doc}"></a>

letztes Bilddokument des Verzeichnisses

Beispiel:
<a href="{last_path_ref}"><img src="{deco_ref}/pfadende.gif" border="0" alt="{last_path_doc}"></a>

Gesamtletztes Bilddokument

Beispiel:
<a href="{last_ref}"><img src="{deco_ref}/gesamtende.gif" border="0" alt="{last_doc}"></a>

Navigations-Nachspann

Hier können Angaben gemacht werden, die vor allen Navigationselementen in das Bilddokument geschrieben werden.

Beispiel:
 </div>

Bildtitel

Text, der hier eingegeben wird, erscheint im HTML-Dokument vor dem Bild.

Bildfestlegungen

Hier können Festlegungen für die Ausgabe des Originalbildes gemacht werden. Im folgenden Beispiel wird das Bild zentriert ohne Rahmen mit dem Name der Bilddatei als Tooltip ausgegeben. Wird auf das Bild geklickt, wird auf die zugehörige HTML-Thumbnailseite weitergeschaltet.

Beispiel:
 <div align="center"><a href="{up_ref}"><img src="{pic_ref}" alt="{doc}" border="0"></a></div>

Bildbeschreibung

Text, der hier eingegeben wird, erscheint hinter dem Bild im HTML-Dokument.

Beispiel:
 Anmerkungen<br>{read("d:\texte\"+mid(doc,1,5)+".txt")}

Seitenabschluss

Hier können HTML-Elemente eingebracht werden, die am Ende der HTML-Seite (unmittelbar vor dem </body> Tag) ausgegeben werden sollen; also auch nach der optionalen Ausgabe des Erstelldatums bzw. der Copyrightnotiz.


JoJoScript Allgemeines

JoJoScript
Bei JoJoScript handelt es sich um eine prozedurale Sprache ähnlich C oder Java, die an die Belange von JoJoThumb angepasst worden ist. So können JoJoScript-Anweisungen sowohl bei der Beschreibung der HTML-Tags eingesetzt werden, als auch eigene Funktionen formuliert werden.

Um den Umgang im Zusammenhang mit JoJoThumb so einfach wie möglich zu gestalten, ist diese Sprache in den Bereichen "Ausgabe" und "Zugriff auf JoJoThumb-Informationen" optimiert.
So sind z.B. JoJoThumb-Informationen zu jeder Zeit in globalen JoJoScript-Variablen verfügbar, die dann durch einfaches "Hinschreiben" der Variablenbezeichnung ausgegeben werden können (siehe Beispiele).

Eigene JoJoScript-Funktionen werden in einem eigenen Dialog der Optionen von JoJoThumb beschrieben.
Innerhalb der Formulierung der HTML-Tags wird JoJoScript durch eine spezielle Syntax angesprochen: alle JoJoScript-Anweisung sind in {} einzuschließen.

Um den Sprachumfang übersichtlich zu halten, sind einige Eigenarten bzw. Einschränkungen zu erwähnen:

  • Parameter werden immer per Value an Funktionen gereicht;
    dies bedeutet, dass sich der Parameter in der aufrufenden Funktion nicht ändert.
  • Es kann nur eine Information aus einer Funktion zurückgegeben werden (über return)
  • es gibt keine ARRAY's
  • in HTML-Tags haben alle Variablen als Voreinstellung globalen Gültigkeitsbereich
  • in eigenen Funktionen haben alle Variable als Voreinstellung lokalen Gültigkeitsbereich (auf globale Variable kann zurückgegriffen werden, indem diese Variablen am Anfang einer Funktion global erklärt werden; siehe GLOBAL-Anweisung).
  • Es gibt keine Ausgabefunktion. Ausgaben werden durch "Hinschreiben" von Variablen, Funktionsaufrufen und Operationen als Anweisung erzielt (siehe Beispiele).
  • bei Variablen- und Funktionsbezeichnern wird nicht zwischen Gross- und Kleinbuchstaben unterschieden.


JoJoScript Sprachbeschreibung

Sprachbeschreibung von JoJoScript

eigene Funktionen

Funktionsname | Bezeichner
Funktionsparameter | Variablenliste
Funktionskörper | Global-Anweisung Anweisungsfolge
Variablenliste | Variable Variablenliste , Variable
Global-Anweisung | GLOBAL Variablenliste ;
Kommentar | //beliebige-Zeichen-bis-Zeilenende
JoJoScript-Anweisungen
Anweisungsfolge ;
 Codeblock
IF-Block
SWITCH-Block
WHILE-Block
FOR-Block
RETURN-Anweisung
Anweisung ;
Codeblock | { Anweisungsfolge }
IF-Block IF ( Anweisung ) Anweisungsfolge Elsecodeblock
Beispiel:
if (x==3)
{
  y1=2;
  y2=3;
}
else
{
  y1=0;
  y2=0;
}
Elsecodeblock
ELSE Anweisungsfolge
SWITCH-Block SWITCH ( Anweisung ) { CASE-Block }
Beispiel:
switch (x)
{
  case 1:  y=sin(a);
  case 2:  y=cos(a);
  case 3:  y=tan(a);
  default: y=0;
}
CASE-Block
 CASE Konstante : C-Anweisung
DEFAULT : C-Anweisung
C-Anweisung Anweisungsfolge
BREAK-Anweisung
WHILE-Block WHILE ( Anweisung ) S-Codeblock
Eine WHILE-Schleife wird solange wiederholt, wie das Ergebnis der Vergleichsanweisung wahr ist. Diese Auswertung wird vor der ersten Anweisung des Codeblocks durchgeführt.
Beispiel:
i=1;
while (i<=10)
{
  i; i=i+1;
}
FOR-Block FOR ( S-Anweisung ; A-Anweisung ; N-Anweisung ) S-Codeblock

Eine FOR-Schleife wird solange wiederholt, wie das Ergebnis der Vergleichsanweisung (A-Anweisung) wahr ist.
Vor dem ersten Vergleich wird die S-Anweisung ausgeführt (Initialisierung). Diese Anweisung ist aber von der Vergleichsanweisung völlig unabhängig zu sehen.
Nach der letzten Anweisung des Codeblocks wird die N-Anweisung (Reinitialisierung) ausgeführt. Auch sie ist von der Vergleichsanweisung unabhängig zu sehen.

Beispiel:
for (i=1; i<=90; i=i+10)
{
  "Sinus von "; i; "="; sin(i*6.283185/360);
}
S-Codeblock Anweisungsfolge
CONTINUE-Anweisung
BREAK-Anweisung
S-Anweisung | Anweisung
A-Anweisung | Anweisung
N-Anweisung | Anweisung
RETURN-Anweisung RETURN Anweisung ;

über RETURN wird der aufrufenden Funktionen ein Funktionsergebnis zurückgegeben.
Fehlt bei RETURN eine Rückgabeangabe, wird 0 als Funktionsergebnis zurückgegeben.
Fehlt in einer Funktion RETURN als letzte Anweisung, wird 0 als Funktionsergebnis zurückgegeben.

Beispiele:
return;
return 2;
return "Länge="+len(x);
CONTINUE-Anweisung CONTINUE ;

CONTINUE ist nur in einer FOR-Schleife und einer WHILE-Schleife zulässig.
Es bewirkt einen direkten "Sprung" zum Schleifenende, was bei einer WHILE-Schleife zur erneuten Auswertung der Schleifenbedinung führt.
Bei einer FOR-Schleife wird dadurch die Reinitialisierung der Schleifenformulierung (N-Anweisung) und eine anschließende Auswertung der Schleifenbedingung (A-Anweisung) durchgeführt.
CONTINUE wirkt sich immer auf den innersten Schleifenkörper aus.
BREAK-Anweisung BREAK ;

BREAK ist nur in einer FOR-Schleife, einer WHILE-Schleife und im SWITCH-Block zulässig.
Es bewirkt ein direktes Verlassen der Schleife bei einer FOR-Schleife und einer WHILE-Schleife sowie das Verlassen des CASE-Blocks in einem SWITCH-Block.
BREAK wirkt sich immer auf den innersten Schleifenkörper sowie SWITCH-Block aus.
Anweisung
 Zuweisung
Funktionsaufruf
Operation
Zuweisung Variable = Anweisung
Beispiele:
y=1;
y="Hallo";
y="Heute ist der " + date();
Funktionsaufruf | Funktionsname ( Argumentliste )
Argumentliste Argument
Argumentliste , Argument
Argument
Variable
Konstante
Operation | Objekt Operator Objekt
Operator aufsteigend in der Priorität der Operatoren
?: | Bedingungsoperator
|| | logisches Oder
&& | logisches Und
| | binäres oder
^ | binäres exklusives Oder
& | binäres Und
== != | Gleichheit, Ungleichheit
< > >= <= | kleiner, größer, größergleich, kleinergleich
+ - | Addition, Subtraktion
* / % | Multiplikation, Division, Modulus
~ | binäres Komplement
! | Negation
Objekt Variable
Konstante
Funktionsaufruf
( Anweisung )
Variable | Bezeichner
Funktionsname | Bezeichner
Konstante Integer
Double
String
Symbol
Symbol @Bezeichner
Ein Symbol wird intern als enumerativer Wert abgebildet
Integer | [0-9]+
Hexadezimalinteger | 0[Xx][0-9A-Fa-f]+
Double | [0-9]+.[0-9]+
String | "Any"
Any | [beliebigesZeichen]*
Bezeichner [_A-Za-zÄäÖöÜüß][_A-Za-z0-9ÄäÖöÜüß]*
zwischen Groß/Kleinschreibung wird nicht unterschieden
Datentypen
Double Reelle Zahlen
-1,79769313486232E308 bis -4,94065645841247E-324 für negative Werte
4,94065645841247E-324 bis 1,79769313486232E308 für positive Werte
Integer Ganze Zahlen
-2147483648 bis 2147483647
String Zeichenketten
Date Datum/Zeit
Datum im Bereich vom 01. Januar 100 bis zum 31. Dezember 9999
Uhrzeit im Bereich von 0:00:00 bis 23:59:59
Symbol Wird intern als enumerativer Datentyp gesehen.
Wird irgendwo ein Symbol angesprochen, so ist es Programmweit bekannt.
Vor den Bezeichner des Symbols ist ein @ zu setzen.
Vordefinierte Symbole sind:
@TRUE | Ist auch das positive Ergebnis bei logischen Operationen
@FALSE | Ist auch das negative Ergebnis bei logischen Operationen
@ERROR | Fehlerindikator
@UNDEFINED | Datentyp undefiniert
@INTEGER | Datentyp Integer
@DOUBLE | Datentyp Double
@STRING | Datentyp String
@SYMBOL | Datentyp Symbol
@DATE | Datentyp Date
@UNKNOWN | Unbekannt

Konvertierungsregeln:

Operand 1 | Operand 2 | Ergebnis
INTEGER | INTEGER | INTEGER
INTEGER | DOUBLE | DOUBLE
INTEGER | STRING | STRING
INTEGER | SYMBOL | SYMBOL
INTEGER | DATE | DATE
DOUBLE | INTEGER | DOUBLE
DOUBLE | DOUBLE | DOUBLE
DOUBLE | STRING | STRING
DOUBLE | SYMBOL | SYMBOL
DOUBLE | DATE | DATE
STRING | INTEGER | STRING
STRING | DOUBLE | STRING
STRING | STRING | STRING
STRING | SYMBOL | STRING
STRING | DATE | STRING
SYMBOL | INTEGER | SYMBOL
SYMBOL | DOUBLE | SYMBOL
SYMBOL | STRING | STRING
SYMBOL | SYMBOL | SYMBOL
SYMBOL | DATE | SYMBOL
DATE | INTEGER | DATE
DATE | DOUBLE | DATE
DATE | STRING | STRING
DATE | SYMBOL | SYMBOL
DATE | DATE | DATE


JoJoScript Standardfunktionen

Standardfunktionen

optionale Parameter sind in [ ] eingeschlossen, Wiederholungen werden mit ... angezeigt

Mathematische Funktionen
Sin

(n)

Sinus des numerischen Wertes n in Bogenmaß

Funktionsergebnis vom Datentyp DOUBLE
Cos

(n)

Cosinus des numerischen Wertes n in Bogenmaß

Funktionsergebnis vom Datentyp DOUBLE
Tan

(n)

Tangens des numerischen Wertes n in Bogenmaß

Funktionsergebnis vom Datentyp DOUBLE
Asin

(n)

Arcussinus des numerischen Wertes n in Bogenmaß

Funktionsergebnis vom Datentyp DOUBLE
Acos

(n)

Arcuscosinus des numerischen Wertes n in Bogenmaß

Funktionsergebnis vom Datentyp DOUBLE
Atan

(n)

Arcustangens des numerischen Wertes n in Bogenmaß

Funktionsergebnis vom Datentyp DOUBLE
Sqrt

(n)

Quadratwurzel des numerischen Wertes n

Funktionsergebnis vom Datentyp DOUBLE
Pow

(n, i)

Numerischer Wert n hoch ganzzahliger Wert i

Funktionsergebnis vom Datentyp INTEGER
Log

(n)

Logarithmus des numerischen Wertes n zur Basis 10

Funktionsergebnis vom Datentyp DOUBLE
Ln

(n)

Natürlicher Logarithmus des numerischen Wertes n

Funktionsergebnis vom Datentyp DOUBLE
Exp

(n)

e hoch numerischer Wert

Funktionsergebnis vom Datentyp DOUBLE
Abs

(n)

Absolutwert eines numerischen Wertes

Funktionsergebnis vom Datentyp DOUBLE oder INTEGER
Min

(n1 [, n2, ...])

Minimum von numerischen Werten

Funktionsergebnis vom Datentyp DOUBLE oder INTEGER
Max

(n1 [, n2, ...])

Maximum von numerischen Werten

Funktionsergebnis vom Datentyp DOUBLE oder INTEGER
Random

(og)

Erzeugen einer Zufallszahl im Zahlenbereich 1 bis zu einer Obergrenze

Funktionsergebnis vom Datentyp INTEGER
og Obergrenze des erlaubten Zahlenbereichs im Datentyp INTEGER

Zeichenkettenfunktionen
Index

([@regexp,] s1, s2)

Position der Zeichenkette s2 in der Zeichenkette s1

Funktionsergebnis vom Datentyp INTEGER

Ist der erste Parameter @regexp, wird der Parameter s2 als regulärer Ausdruck behandelt.
Reguläre Ausdrücke sind nur dann möglich, wenn der Windows Scripting Host installiert ist (sollte in der Regel der Fall sein).
Replace

([@regexp,] s, f, r)
([@regexp,] s, f, r, @first)

Ersetzen von Zeichenketten

Funktionsergebnis vom Datentyp STRING

Ist der erste Parameter @regexp, wird der Parameter f als regulärer Ausdruck behandelt.
Reguläre Ausdrücke sind nur dann möglich, wenn der Windows Scripting Host installiert ist (sollte in der Regel der Fall sein).
s | zu untersuchende Zeichenkette im Datentyp STRING
f | zu findende Zeichenkette in s im Datentyp STRING
r | Ersatzzeichenkette für die gefundenen f im Datentyp STRING
@first | Angabe, dass nur die erste gefundene Stelle ersetzt wird
fehlt @first, werden alle Vorkommen ersetzt
Format

(f, x1)
(f, x1 [, x2, ...])

Formatierung von Datenobjekten

Funktionsergebnis vom Datentyp STRING
f | Formatbeschreibung für die folgenden Objekte x1..., wobei
%[-]Länge[.Weite] | Platzhalter für ein Objekt mit Längenangaben und Linksbündigkeit (-)
%! | Formatabbruch (z.B. format("%!3", a) gibt den Inhalt von a, gefolgt von 3 aus)
%% | Ausgabe von %
%\ | Ausgabe eines Zeilenumbruchs
Mid

(s, p1)
(s, p1, anz)

Teil einer Zeichenkette erfragen; hier Angabe durch Position und Länge

Funktionsergebnis vom Datentyp STRING
s | Zeichenkette im Datentyp STRING
p1 | Startposition des 1. Zeichens aus s im Datentyp INTEGER
anz | Anzahl der gewünschten Zeichen aus s im Datentyp INTEGER
Fehlt anz, beginnt der Teil ab p1 und endet am Ende der Zeichenkette s
Split

(s, t, p)

Teil einer Zeichenkette erfragen; hier nach Aufteilen der Zeichenkette durch Trennzeichen

Funktionsergebnis vom Datentyp STRING
s | Zeichenkette vom Datentyp STRING
t | Trennzeichen vom Datentyp STRING
p | Position der Teilzeichenkette vom Datentyp INTEGER
Len

(s)

Länge der Zeichenkette s

Funktionsergebnis vom Datentyp INTEGER
Upper

(s)

Alle Zeichen der Zeichenkette s in Großbuchstaben umwandeln

Funktionsergebnis vom Datentyp STRING
Lower

(s)

Alle Zeichen der Zeichenkette s in Kleinbuchstaben umwandeln

Funktionsergebnis vom Datentyp STRING
Trim

(s)
(s, to)

Zeichenkette s um führende/folgende Leerzeichen kürzen

Funktionsergebnis vom Datentyp STRING
s | Zeichenkette im Datentyp STRING
to | Trimmoption @leading entfernt die führenden Leerzeichen @trailing entfernt die folgenden Leerzeichen @both entfernt die führenden und folgenden Leerzeichen
Fehlt die Trimmoption, werden die führenden und folgenden Leerzeichen entfernt
Urlencode

(s)

Zeichenkette s in URL-konforme Zeichenkette umwandeln (betrifft z.B. Leerzeichen und Umlaute)

Funktionsergebnis vom Datentyp STRING
Filenamepart

(fname, k)

Laufwerksbezeichung, Verzeichnisname, Dateiname und Dateityp aus Zeichenkette s ermitteln

Funktionsergebnis vom Datentyp STRING

fname | Zeichenkette im Datentyp STRING
k | gewünschte Komponente @drivename = Laufwerksname @dirname = Verzeichnisname @filename = Dateiname @filetype = Dateiart
Konvertierungsfunktionen
Type

(x)

Datentyp des Datenobjektes x

Funktionsergebnis vom Datentyp SYMBOL
Integer

(x)

Objekt x in eine ganze Zahl umwandeln

Funktionsergebnis vom Datentyp INTEGER
Double

(x)

Objekt x in eine reelle Zahl umwandeln

Funktionsergebnis vom Datentyp DOUBLE
String

(x)

Objekt x in eine String umwandeln

Funktionsergebnis vom Datentyp STRING
Symbol

(x)

Objekt x in ein Symbol umwandeln

Funktionsergebnis vom Datentyp SYMBOL
Date

(x)

Objekt x in ein Datum/Zeit umwandeln

Beim Umwandeln der numerischen Datentypen repräsentieren die Vorkommastellen das Datum und die Nachkommastellen die Uhrzeit.
Mitternacht entspricht dem Wert 0, und Mittag entspricht den Nachkommawert 0,5. Negative ganze Zahlen repräsentieren ein Datum vor dem 30. Dezember 1899.
Beim Umwandeln von Zeichenketten muss der Inhalt der Zeichenkette ein gültiges Datum/Zeit sein (z.B. "21.4.2000" oder "14:26:10" oder "21.4.2000 14:26:10").
Funktionsergebnis vom Datentyp DATE
Convert

(z, b)

Umwandeln der ganzen Zahl z in ihre Darstellung zur Zahlenbasis b

Funktionsergebnis vom Datentyp STRING

z Zahl im Datentyp INTEGER
b Zahlenbasis von 2-36 im Datentyp INTEGER

oder

ein SYMBOL der folgenden

@bin als Repräsentant für die Zahlenbasis 2 (binäre Zahlen)
@oct als Repräsentant für die Zahlenbasis 8 (oktale Zahlen)
@hex als Repräsentant für die Zahlenbasis 16 (hexadezimale Zahlen)

Dateifunktionen
Read

(fname)
(fname, z1)
(fname, z1, zn)

Einlesen von Textzeilen aus einer Datei

Funktionsergebnis vom Datentyp STRING
fname | gültiger Dateiname mit absoluter Pfadangabe im Datentyp STRING
z1 | Zeilennummer der ersten zu lesenden Zeile
zn | Zeilennummer der letzten zu lesenden Zeile
Wird zn weggelassen, wird bis zum Dateiende eingelesen.
Werden z1 und zn weggelassen, wird die gesamte Datei eingelesen.
Exist

(fname)

Prüfen, ob eine Datei oder ein Verzeichnis existiert

Funktionsergebnis vom Datentyp SYMBOL
@true = Verzeichnis/Datei vorhanden
@false = Verzeichnis/Datei nicht vorhanden
fname gültiger Dateiname mit absoluter Pfadangabe im Datentyp STRING

Bildfunktionen
Digitale Bilder können außer dem eigentlichen Bild weitere Informationen, Metadaten genannt, enthalten. Dies wird insbesondere bei Bildern genutzt, die von Digitalkameras erzeugt wurden. So werden dort der Name des Kameraherstellers, die Bezeichnung des Kameramodells, Belichtungszeit, Blende, Aufnahmedatum und viele weitere Informationen abgelegt. Der Aufbau dieser Informationen ist in einer Norm, "Exchangeable image file format for Digital Still Cameras, Version 2.1", kurz Exif genannt, beschrieben. Weitere Informationen können in einem allgemeinen Bereich abgelegt werden, der sich IPTC nennt.

Da die Metadaten-Auswertung teilweise sehr aufwändig ist und die internen Strukturen von JoJoThumb erweitert, ist der Ausleseprozess explizit einzuschalten. Der Schalter befindet sich bei den HTML-Grundeinstellungen.

Um die gesamte Metadaten betreffende Funktionalität nutzen zu können, muss ein Grundwissen über die entsprechenden Normen vorhanden sein; insbesondere die Bedeutung von Eintragsnummern (Tags), Eintragsbezeichnungen und Eintragsbedeutungen.

Leider werden die in der Norm beschriebenen Vorgaben von den Herstellern nicht immer gleich interpretiert. Zusätzlich sieht die Norm einen Hersteller/Geräteabhängigen Teil in dieser Informationssammlung vor. Aus diesem Grund muss eine Auswertung teilweise an diese Gegebenheiten angepasst werden.
Für JoJoThumb bedeutet dies, dass es möglicherweise an nicht bekannte Kameramodelle angepasst werden muss.
Um etwas auf diese Tatsache vorbereitet zu sein, ist ein Teil der Metadatendefinition in eine externe Beschreibungsdatei ausgelagert worden. Im Anhang sind das Format dieser Datei sowie einige Metadaten-Einträge mit ihrer Nummer und ihrer Bezeichnung ausgewiesen.
Exif

()
(e)
(e, p)
(e, s)
(e, p, s)
(b)
(b, p)
(b, s)
(b, p, s)

Erfragen, ob Exif-Einträge zum aktuellen Bild vorhanden sind
oder
Erfragen des Inhalts eines Exif-Eintrags des aktuellen Bildes in Rohform

Funktionsergebnis vom Datentyp SYMBOL, @true wenn Einträge vorhanden sind, sonst @false
oder
vom Datentyp, der dem Inhalt der gewünschten Information entspricht (STRING, INTEGER, DOUBLE)
e | Eintragsnummer im Datentyp INTEGER
b | Eintragsbezeichnung im Datentyp STRING
p | Position im Komponentenfeld eines Exif-Eintrags
s | Exif-Sektion im Datentyp SYMBOL @main, @thumbnail, @makernote
Ist s nicht vorhanden, wird @main angenommen
Ein Aufruf ohne Parameter dient zum Erfragen, ob überhaupt Exif-Einträge zum aktuellen Bild vorhanden sind
Exifnice

()
(e)
(e, p)
(e, p, f)
(e, s)
(e, p, s)
(e, p, f, s)
(b)
(b, p)
(b, p, f)
(b, s)
(b, p, s)
(b, p, f, s)

 Erfragen, ob Exif-Einträge zum aktuellen Bild vorhanden sind
oder
Erfragen des Inhalts eines Exif-Eintrags des aktuellen Bildes in aufbereiteter Form

Ist zum Inhalt eines Exif-Eintrags keine Beschreibung der Bedeutung realisiert, entspricht das Funktionsergebnis dem Funktionsergebnis der Funktion exif.

Funktionsergebnis vom Datentyp SYMBOL, @true wenn Einträge vorhanden sind, sonst @false
oder
vom Datentyp, der dem Inhalt der gewünschten Information entspricht (STRING, INTEGER, DOUBLE)
e | Eintragsnummer im Datentyp INTEGER
b | Eintragsbezeichnung im Datentyp STRING
p | Position im Komponentenfeld eines Exif-Eintrags im Datentyp INTEGER
f | Formatierungsangabe im Datentyp INTEGER Die Formatierungsangaben entsprechenden den Angaben, die in der Exif-Beschreibungsdatei vorgenommen werden können. Die Formatierungsangabe im Funktionsaufruf überlagert eine Formatierungsangabe in der Exif-Beschreibungsdatei
s | Exif-Sektion im Datentyp SYMBOL @main, @thumbnail, @makernote
Ist p nicht vorhanden wird 0 angenommen
Ist s nicht vorhanden, wird @main angenommen
Ein Aufruf ohne Parameter dient zum Erfragen, ob überhaupt Exif-Einträge zum aktuellen Bild vorhanden sind
Exifcount

()
(s)

Erfragen der Anzahl der Exif-Einträge des aktuellen Bildes

Funktionsergebnis vom Datentyp INTEGER
s Exif-Sektion im Datentyp SYMBOL
@main, @thumbnail, @makernote
Ein Aufruf ohne Parameter liefert die Gesamtsumme aller Exif-Einträge des aktuellen Bildes
Exiftag

(p)
(p, s)
(b)
(b, s)

Erfragen der Eintragsnummer eines Exif-Eintrags an einer bestimmten Position der Eintragsliste
oder
die Eintragsnummer des Exif-Eintrags entsprechend seiner Bezeichnung

Funktionsergebnis vom Datentyp INTEGER
p | Position des Eintrags in der Eintragsliste im Datentyp INTEGER
b | Eintragsbezeichnung im Datentyp STRING
s | Exif-Sektion im Datentyp SYMBOL @main, @thumbnail, @makernote
Ist s nicht vorhanden, wird @main angenommen
Exiftagname

(e)
(e, p)
(e, s)
(e, p, s)

Erfragen der Bezeichnung eines Exif-Eintrags oder der Bezeichnung einer Komponente eines Exif-Eintrags

Funktionsergebnis vom Datentyp STRING
e | Eintragsnummer eines Exif-Eintrags im Datentyp INTEGER
p | Position im Komponentenfeld eines Exif-Eintrags
s | Exif-Sektion im Datentyp SYMBOL @main, @thumbnail, @makernote
Ist s nicht vorhanden, wird @main angenommen
Exifcomponentcount

(e)
(e, s)
(b)
(b, s)

Erfragen der Anzahl Komponenten eines Exif-Eintrags an einer bestimmten Position der Eintragsliste

Funktionsergebnis vom Datentyp INTEGER
e | Eintragsnummer im Datentyp INTEGER
b | Eintragsbezeichnung im Datentyp STRING
s | Exif-Sektion im Datentyp SYMBOL @main, @thumbnail, @makernote
Ist s nicht vorhanden, wird @main angenommen
Iptc

()
(e)
(b)

Erfragen, ob IPTC-Einträge zum aktuellen Bild vorhanden sind
oder
Erfragen des Inhalts eines IPTC-Eintrags des aktuellen Bildes

Funktionsergebnis vom Datentyp SYMBOL, @true wenn Einträge vorhanden sind, sonst @false
oder
der Inhalt des Eintrags vom Datentyp STRING
e | Eintragsnummer im Datentyp INTEGER
b | Eintragsbezeichnung im Datentyp STRING
Ein Aufruf ohne Parameter dient zum Erfragen, ob überhaupt IPTC-Einträge zum aktuellen Bild vorhanden sind
Iptccount

()

Erfragen der Anzahl der IPTC-Einträge des aktuellen Bildes

Funktionsergebnis vom Datentyp INTEGER
Iptctag

(p)
(b)

Erfragen der Eintragsnummer eines IPTC-Eintrags an einer bestimmten Position der Eintragsliste
oder
die Eintragsnummer des IPTC-Eintrags entsprechend seiner Bezeichnung

Funktionsergebnis vom Datentyp INTEGER
p | Position des Eintrags in der Eintragsliste im Datentyp INTEGER
b | Eintragsbezeichnung im Datentyp STRING
Iptctagname

(e)

Erfragen der Bezeichnung eines IPTC-Eintrags

Funktionsergebnis vom Datentyp STRING
e Eintragsnummer eines IPTC-Eintrags im Datentyp INTEGER
Imagecomment

()
(p)

Erfragen, ob Kommentare zum aktuellen Bild (wenn JPG) vorhanden sind
oder
Erfragen des Inhalts eines Kommentars des aktuellen Bildes (wenn JPG)

Funktionsergebnis vom Datentyp SYMBOL, @true wenn Einträge vorhanden sind, sonst @false
oder
der Inhalt des Eintrags vom Datentyp STRING
p Kommentar-Position im Datentyp INTEGER
Ein Aufruf ohne Parameter dient zum Erfragen, ob überhaupt Kommentare zum aktuellen Bild vorhanden sind
Imagecommentcount

()

Erfragen der Anzahl der Kommentare des aktuellen Bildes (wenn JPG)

Funktionsergebnis vom Datentyp INTEGER

sonstige Funktionen
Now

()

Aktuelles Datum/Zeit

Funktionsergebnis vom Datentyp DATE
Datepart

(dw, info)

Anteil(e) eines Datum/Zeitobjekt erfragen (z.B. Monat, Wochentag, Woche im Jahr, usw.) im Datentyp INTEGER oder STRING

dw | gültiges Datum/Zeit im Datentyp DATE
info | Gewünschte Information im Datentyp STRING

Als Angabe der gewünschten Informationen können vielfältige Angaben gemacht werden. So ist es möglich, die laufende Nummer der Woche im Jahr, des Monats im Jahr, des Jahres, des Tages in der Woche, im Monat, im Jahr zu erfragen, aber auch die Wochentagsbezeichnung oder den Monatsnamen. Auch sind beliebige Kombinationen zulässig (siehe Beispiele).

Die Steuerung erfolgt über bestimmte Zeichen bzw. Zeichenkombinationen:

Zeichen | Beschreibung
: | Zeit-Trennzeichen Es trennt Stunden, Minuten und Sekunden
. | Datumstrennzeichen Es trennt Tag, Monat und Jahr
C | Ergibt das Datums in der Form ddddd und die Zeit in der Form ttttt, und zwar in dieser Reihenfolge. Hat die fortlaufende Zahl für das Datum keine Nachkommastellen, so wird nur das Datum angeliefert. Hat sie ausschließlich Nachkommastellen, so wird lediglich die Uhrzeit angeliefert.
d | Ergibt Zeigt den Tag als Zahl ohne führende Null (1 – 31)
dd | Ergibt den Tag als Zahl mit führender Null (01 – 31)
ddd | Ergibt den Tag als Abkürzung (So – Sa)
dddd | Ergibt den Tag mit vollständigem Namen (Sonntag – Samstag)
ddddd | Ergibt ein vollständiges Datum (einschließlich Tag, Monat und Jahr), das entsprechend der Systemeinstellung für das kurze Datumsformat formatiert ist. Die Voreinstellung für das kurze Datumsformat ist dd.mm.yy
dddddd | Ergibt ein vollständiges Datum (einschließlich Tag, Monat und Jahr), das entsprechend der Systemeinstellung für das lange Datumsformat formatiert ist. Die Voreinstellung für das lange Datumsformat ist dd.mmmm.yyyy
w | Ergibt den Wochentag als Zahl (1 für Montag bis 7 für Sonntag)
ww | Ergibt die Kalenderwoche als Zahl (1 – 54)
m | Ergibt den Monat als Zahl ohne führende Null (1 – 12). Wenn m unmittelbar auf h oder hh folgt, wird nicht der Monat, sondern die Minute angeliefert
mm | Ergibt den Monat als Zahl mit führender Null (01 – 12). Wenn m unmittelbar auf h oder hh folgt, wird nicht der Monat, sondern die Minute angeliefert
mmm | Ergibt den Monat als Abkürzung (Jan – Dez)
mmmm | Ergibt den Monat mit vollständigem Namen (Januar – Dezember)
q | Ergibt das Jahresquartal als Zahl (1 – 4)
y | Ergibt den Kalendertag als Zahl (1 – 366)
yy | Ergibt das Jahr als zweistellige Zahl (00 – 99)
yyyy | Ergibt das Jahr als vierstellige Zahl (100 – 9999)
h | Ergibt die Stunde als Zahl ohne führende Nullen (0 – 23)
hh | Ergibt die Stunde als Zahl mit führender Nullen (00 – 23)
n | Ergibt die Minute als Zahl ohne führende Nullen (0 – 59)
nn | Ergibt die Minute als Zahl mit führender Nullen (00 – 59)
s | Ergibt die Sekunde als Zahl ohne führende Nullen (0 – 59)
ss | Ergibt die Sekunde als Zahl mit führender Nullen (00 – 59)
ttttt | Ergibt eine vollständige Zeitangabe (einschließlich Stunden, Minuten und Sekunden), die mit dem Zeit-Trennzeichen formatiert ist, das in der Systemeinstellung für das Zeitformat festgelegt ist. Eine führende Null wird angezeigt, wenn die entsprechende Option ausgewählt wurde und die Zeit vor 10:00 liegt. Die Voreinstellung für das Zeitformat ist h:mm:ss
arrayset

(n, k [, i])

JoJoScript bietet die Möglichkeit Sammlungen von Elementen anzulegen; ARRAY's.
Diese Array's können über ihren Namen (frei vergebbar) angesprochen werden. In jedem Array können beliebig viele Elemente gespeichert werden, die über einen Schlüssel oder ihre Position im Array erreichbar sind.

n | Name des Array's im Datentyp STRING
k | Schlüssel des Eintrags im Datentyp STRING
i | Inhalt des Arrayeintrags

Fehlt die Angabe des Inhalts, wird das Element aus dem Array entfernt.

arrayget

(n, k [, idx])

Erfragen des Inhalts eines Elements eines Array's.
Der Inhalt eines Arrayelements kann über seinen Schlüssel oder seine Eintragsposition angesprochen werden.

n | Name des Array's im Datentyp STRING
k | Schlüssel des Eintrags im Datentyp STRING
idx | Index (laufende Nummer) eines Arrayelements
arraycount

(n)

Erfragen der Anzahl der Elemente eines Array's.

n Name des Array's im Datentyp STRING
arrayclear

(n)

Löschen aller Elemente eines Array's.

n Name des Array's im Datentyp STRING
Callstack

()

Aktuelle Aufrufhierarchie der benutzten JoJoThumb-Funktionen

Funktionsergebnis vom Datentyp STRING
Dbread

(db, t, f, k, i)
(db, t, f, k, i, p)

Einfacher Zugriff auf den Inhalt von Datenbank-Dateien

Funktionsergebnis entsprechend des angeforderten Feldes der Datenbank

Diese Funktion kann nur aufgerufen werden, wenn das benötigte DB-Umfeld installiert ist. Es handelt sich dabei um die Microsoft Komponenten MDAC und JET. Bei Windows ME und Windows 2000 sollte dies nach der Installation der Fall sein. Falls sie nicht vorhanden sind, können sie kostenfrei bei Microsoft direkt heruntergeladen werden (http://www.microsoft.com/data). Der Umfang beträgt ca. 9MB.

db | gültiger Dateiname mit absoluter Pfadangabe im Datentyp STRING
t | Name der Tabelle im Datentyp STRING
f | Name des Feldes, das durchsucht werden soll, im Datentyp STRING
k | Schlüssel, der im Feld f gesucht werden soll
i | Name des Feldes, dessen Inhalt das Funktionsergebnis liefern soll, im Datentyp STRING
p | Name des Providers im Datentyp STRING
Wird p weggelassen, wird "Microsoft.Jet.OLEDB.4.0" angenommen.


JoJoScript Beispiele

Beispiele
{1+2}
 hier wird 3 ausgegeben
{count_cur_file} von {count_all_files}
 wie bisher die Ausgabe der laufenden Bildnummer aller Bilder
{if (count_cur_file_in_row == 1) "Neue Zeile"}
 Ausgabe von "Neue Zeile", wenn es sich um das erste Bild in einer Zeile handelt
{len (path_file_ext)}
 Ausgabe der Anzahl Zeichen des Namens des Quellbildes
{
  if (count_cur_file == 1)
    summe = isize_byte;
  else
    summe = summe + isize_byte;

  summe;
  "<br>";

  if (count_cur_file == count_all_files)
    "fertig<br>";
}
 Aufsummierung der Bytes aller Bilder und Ausgabe dieser Summe. Beim letzten Bild wird zusätzlich der Text "fertig" ausgegeben. Diese Anweisungsfolge in einer eigenen Funktion zu stellen, wäre durchaus eine weitere Lösungsmöglichkeit. Dann wäre darauf zu achten, count_cur_file, count_all_files, isize_byte aber auch summe als globale Variable zu erklären (bei summe, damit der Inhalt über die vielen Funktionsaufrufe hinweg erhalten bleibt).
Diese Anweisung ist z.B. bei der Bildbeschreibung der Seitendefinition des Thumbnail-Dokuments einzufügen.
{
  a = type(123);
  switch (a)
  {
    case @symbol: "Der Typ von a ist SYMBOL";
    case @integer: "Der Typ von a ist INTEGER";
    case @double: "Der Typ von a ist DOUBLE";
    case @string: "Der Typ von a ist STRING";
    default: "Der Typ von a ist hmmm?";
  }
}
 Hier wird zuerst der Variablen a das Ergebnis der Funktion "type", das Erfragen des Typs eines Wertes, zugewiesen. Das Ergebnis ist vom Typ SYMBOL.
Anschließend wird in einem SWITCH-Block entsprechend des Inhalts der Variablen a ein String ausgegeben. In diesem Beispiel ist das Ergebnis natürlich immer INTEGER.
{
  a = format("|%|%8.2|%-8.2|", 1.1, 2.2, 3.3);
  replace(a, " ", "&#160;");
}
 Hier wird zuerst der Variablen a das Ergebnis der Formatierung von 3 Zahlen zugewiesen, die jeweils durch einen senkrechten Strich voneinander getrennt sind.
Die erste Zahl wird auf kleinst möglichem Raum ausgegeben.
Die zweite Zahl wird so formatiert, dass sie insgesamt 8 Zeichen einnimmt, wobei 2 Stellen für den Nachkommaanteil genutzt werden. Das Ergebnis ist rechtsbündig, wobei führende nicht genutzte Stellen mit Leerzeichen aufgefüllt werden.
Die dritte Zahl wird so formatiert, dass sie insgesamt 8 Zeichen einnimmt, wobei 2 Stellen für den Nachkommaanteil genutzt werden. Das Ergebnis ist linksbündig, wobei folgende nicht genutzte Stellen mit Leerzeichen aufgefüllt werden.
Da ein HTML-Browser üblicherweise mehrere hintereinanderfolgende Leerzeichen zu einem Leerzeichen zusammenfasst, müssen die Leerzeichen für die Ausgabe in geschützte Leerzeichen umgewandelt werden.
{
  zeit = now();
  zeit;
  mid (string (zeit), 1, 8); "<br>";
  mid (string (zeit), 12, 8); "<br>";
  zeit + 1; "<br>";
  zeit + 0.5; "<br>";
  datepart(zeit,"d"); "<br>";
  datepart(zeit,"yyyy"); "<br>";
  datepart(zeit,"dddd"); "<br>";
  datepart(zeit,"w"); "<br>";
  datepart(zeit,"ww"); "<br>";
  datepart(zeit,"y"); "<br>";
  datepart(zeit,"dddddd"); "<br>";
  datepart(zeit,"dddd, d. mmmm yyyy"); "<br>";
}
 Hier wird zuerst der Variablen zeit das aktuelle Datum/Uhrzeit zugewiesen.
Anschließend wird dies ausgegeben (Format 01.01.2000 01:01:01).
Dann wird das Datum aus dieser Information als Zeichenkette gewonnen.
Dann wird die Uhrzeit aus dieser Information als Zeichenkette gewonnen.
Dann wird das in der Variablen zeit gemerkte Datum um 1 Tag erhöht ausgegeben.
Dann wird das in der Variablen zeit gemerkte Datum um 12 Stunden erhöht ausgegeben.

Die dann folgenden Aufrufe von datepart erzeugen für die Variable zeit folgende Ausgaben:
d = Tag im Monat (z.B. 5)
yyyy = Jahr (z.B. 1998)
dddd = Bezeichnung des Wochentags (z.B. Mittwoch)
w = Tag der Woche (z.B. 4)
ww = laufende Woche im Jahr (z.B. 43)
y = laufender Tag im Jahr (z.B. 153)
dddddd = Datum im langen Systemformat (z.B. 19.07.2000)
dddd, d. mmmm yyyy = Kombinierte Datumsangabe (z.B. Mittwoch, 19. Juli 2000)

{
  a = dbread("e:\db.mdb", "t", "k", path, "i");
}
 Hier wird für eine Datenbankanfrage die Tabelle t in der Datei db.mdb benutzt.
Im Feld k wird nach einem Eintrag gesucht, der dem Inhalt der globalen Variablen path (der Pfad des aktuellen Quellbildes) entspricht. Als Ergebnis wird der Inhalt des Feldes i des ersten auf die Suchanfrage gefundenen Ergebnisses zurückgeliefert.
Als Providereintrag wird die Voreinstellung "Microsoft.Jet.OLEDB.4.0" (wird z.B. für ACCESS 2000 benötigt) benutzt.
{
  "Anzahl Exif-Informationen: ";
  exifcount(); "<br>";
  "Hersteller: ";
  exifnice(271); "<br>";
  "Modell: ";
  exifnice(272); "<br>";
  "Blende: ";
  exifnice("fnumber", @main); "<br>";
  "Belichtungszeit: ";
  exifnice("exposuretime"); "<br>";
}

 Hier wird die Gesamtanzahl aller Exif-Einträge zum aktuellen Bild erfragt. Anschließend werden der Name des Kameraherstellers, die Bezeichnung des Kameramodells sowie die benutzte Blende und Belichtungszeit ausgegeben.

Im Aufruf zum Erfragen der Blende (fnumber) ist die Angabe der Sektion zu finden, die für diesen Exif-Eintrag entfallen könnte, da dann die Sektion main automatisch angenommen wird.

Diese Funktion könnte z.B. sinnvoll beim Bild-Dokument im Bildtitel oder der Bildbeschreibung aufgerufen werden.


Globale Variable

Vorbelegte globale Variable

In vorbelegten globalen Variablen stehen aktuelle Zustände der HTML-Generierung zur Verfügung.

Zu beachten:
Es können grundsätzliche alle Variablen an allen Stellen benutzt werden. In einigen Bereichen ist der Einsatz bestimmter Variablen allerdings nicht sinnvoll (z.B. FILE innerhalb der Indexseite). Globale Variable sind während der Laufzeit nicht veränderbar; also schreibgeschützt.

Beschreibung der globalen Variablen

BASE_ABSOLUTE | Absoluter Verzeichnisname des Basisverzeichnisses Laufwerk:\Pfadname
CLONE_ABSOLUTE | Absoluter Verzeichnisname des Verzeichnisses, in das die Originalbilder durch Clonen kopiert werden Laufwerk:\Pfadname
COUNT_ALL_FILES | Summe aller Bilddateien aller Pfade 123
COUNT_ALL_PATH | Anzahl aller Pfade 123
COUNT_CUR_ALL_FILES | Laufende Bildnummer des aktuellen Bildes aller Bilddateien 123
COUNT_CUR_FILE | Laufende Bildnummer des aktuellen Bildes aller Bilder des aktuellen Pfades 123
COUNT_CUR_FILE_IN_PAGE | Laufende Bildnummer des aktuellen Bildes der aktuellen Seite des aktuellen Pfades 123
COUNT_CUR_FILE_IN_ROW | Laufende Bildnummer des aktuellen Bildes der aktuellen Zeile der Bildertabelle 123
COUNT_CUR_PAGE | Laufende Seitennummer des aktuellen Pfades bei HTML-Split 123
COUNT_CUR_PATH | Laufende Nummer des aktuellen Pfades 123
COUNT_CUR_ROW | Laufende Zeilennummer der aktuellen Seite 123
COUNT_FILES | Summe der Bilddateien des aktuellen Pfades 123
COUNT_NEXT_FILE | Laufende Bildnummer des nächsten Bildes aller Bilder des aktuellen Pfades bzw. laufende Bildnummer des ersten Bildes (=1) des nächsten Pfades 123
COUNT_NEXT_PAGE | Folgende Seitennummer des aktuellen Pfades bei HTML-Split. Ist die aktuelle Seite die letzte Seite, wird hier 0 geliefert 123
COUNT_NEXT_PATH | Laufende Nummer des nächsten Pfades. Ist der aktuelle Pfad der letzte Pfad, wird hier 0 geliefert 123
COUNT_PAGE_FILES | Summe der Bilddateien der aktuellen Seite 123
COUNT_PAGES | Summe aller Seiten des aktuellen Pfades bei HTML-Split 123
COUNT_PREV_FILE | Laufende Bildnummer des vorherigen Bildes aller Bilder des aktuellen Pfades bzw. laufende Bildnummer des letzten Bildes aller Bilder des vorherigen Pfades 123
COUNT_PREV_PAGE | Vorherige Seitennummer des aktuellen Pfades bei HTML-Split. Ist die aktuelle Seite die erste Seite, wird hier 0 geliefert 123
COUNT_PREV_PATH | Laufende Nummer des vorherigen Pfades. Ist der aktuelle Pfad der erste Pfad, wird hier 0 geliefert 123
CUR_DATE | Aktuelles Datum 1.1.2000
CUR_DOC | Name des aktuellen HTML-Dokuments ohne Dateiart Dateiname
CUR_TIME | Aktuelle Uhrzeit 23:01:01
DATE | Speicherdatum des aktuellen Quellbildes 1.1.2000
DECO_REF | Relativer Pfadname zum Deko-Verzeichnis relPfad
DIM | Ausdehnung des aktuellen Quellbildes in Pixeln 100 x 1000
DIMX | Breite des aktuellen Quellbildes in Pixeln 123
DIMY | Höhe des aktuellen Quellbildes in Pixeln 123
DOC | Name eines HTML-Dokuments ohne Dateiart Dateiname
ERRF_LAST | Aufrufhierarchie der Funktionen die zur Fehlersituation führte Funktion1 < Funktion2 < Funktion3
ERRN_LAST | Fehlernummer des zuletzt aufgetreten Fehlers 123
ERRS_LAST | Fehlerbeschreibung des zuletzt aufgetreten Fehlers Funktion: (Fehlernummer) Text
EXT | Dateiart des aktuellen Quellbildes dateiart
FILE | Dateiname des aktuellen Quellbildes dateiname
FILE_EXT | Dateiname und Dateiart des aktuellen Quellbildes dateiname.dateiart
FIRST_DOC | Name des Gesamtersten Dokuments ohne Dateiart Dateiname
FIRST_PAGE_DOC | Name des ersten Bilddokuments einer Seite ohne Dateiart Dateiname
FIRST_PATH_DOC | Name des ersten Dokuments des Verzeichnisses ohne Dateiart Dateiname
FIRST_PAGE_REF | Relativer Dateiname des ersten Bilddokuments einer Seite relPfad/docname.dateiart
FIRST_PATH_REF | Relativer Dateiname des ersten Dokuments eines Verzeichnisses relPfad/docname.dateiart
FIRST_REF | Relativer Dateiname des Gesamtersten Dokuments relPfad/docname.dateiart
HTML | Bezeichnung der Dateiart der HTML-Dokumente Dateiart
JOJOTHUMB_ABSOLUTE | Absoluter Verzeichnisname des Verzeichnisses, in das JoJoThumb installiert wurde Laufwerk:\Pfadname
LAST_DOC | Name des Gesamtletzten Dokuments ohne Dateiart Dateiname
LAST_PAGE_DOC | Name des letzten Bilddokuments einer Seite ohne Dateiart Dateiname
LAST_PATH_DOC | Name des letzten Dokuments des Verzeichnisses ohne Dateiart Dateiname
LAST_PAGE_REF | Relativer Dateiname des letzten Bilddokuments einer Seite relPfad/docname.dateiart
LAST_PATH_REF | Relativer Dateiname des letzten Dokuments eines Verzeichnisses relPfad/docname.dateiart
LAST_REF | Relativer Dateiname des Gesamtletzten Dokuments relPfad/docname.dateiart
LOAD | Ladezeit in Millisekunden des aktuellen Quellbildes 12345
NEXT_DOC | Name des Nachfolgerdokuments ohne Dateiart Dateiname
NEXT_REF | Relativer Dateiname des nachfolgenden HTML-Dokuments relPfad/docname.dateiart
PARENT_PATH | bei Auswertung nach UnterUnterVerzeichnissen der Verzeichnisname des übergeordneten Verzeichnisses (UnterVerzeichnis) Pfadname
PATH | Verzeichnisname des aktuellen Quellbildes Pfadname
PATH_ABSOLUTE | Absoluter Verzeichnisname des Verzeichnisses, in dem sich das aktuelle Quellbild befindet Laufwerk:\Pfadname
PATH_FILE | Verzeichnisname und Dateiname des aktuellen Quellbildes pfadname/dateiname Für den Fall, dass der automatische HTML-Dokumentenumbruch (HTML-Split) eingeschaltet ist, wird an den Pfadnamen noch -x angehängt, wobei x die laufende Unternummer des erzeugten HTML-Dokuments ist.
PATH_FILE_EXT | Verzeichnisname, Dateiname und Dateiart des aktuellen Quellbildes pfadname/dateiname.dateiart Für den Fall, dass der automatische HTML-Dokumentenumbruch (HTML-Split) eingeschaltet ist, wird an den Pfadnamen noch -x angehängt, wobei x die laufende Unternummer des erzeugten HTML-Dokuments ist.
PREV_DOC | Name des Vorgängerdokuments des aktuellen HTML-Dokuments ohne Dateiart Dateiname
PREV_REF | Relativer Dateiname des vorherigen HTML-Dokuments relPfad/docname.dateiart
PROFILE | Name des aktuell eingestellten Profils Profilname
SIZE_BYTE | Dateigröße des aktuellen Quellbildes in Byte 12345
SIZE_BYTE_ALL | Dateigröße aller Quellbilder in Byte 12345
SIZE_BYTE_PATH | Dateigröße aller Quellbilder des aktuellen Pfads in Byte 12345
SIZE_KBYTE | Dateigröße des aktuellen Quellbildes in Kilobyte 123,56789
SIZE_MBYTE | Dateigröße des aktuellen Quellbildes in Megabyte 123,56789
SRC_DOC | Name des nachgeordneten Dokuments ohne Dateiart. Im Indexdokument der Name des Thumbnaildokuments, im Thumbnaildokument der Name des Bilddokuments dateiname
SRC_REF | Relativer Dateiname des nachgeordneten Dokuments. Im Indexdokument der Dateiname des Thumbnaildokuments, im Thumbnaildokument der Dateiname des Bilddokuments relPfad/bildname.art
STAMP_IMAGE | Name des Bildes, das beim Clonen und aktiviertem Stempel ausgegeben wird
STAMP_TEXT | Text, der beim Clonen und aktiviertem Stempel ausgegeben wird
THUMB_DIM | Für die Erzeugung der Thumbnails eingestellte Ausdehnung 123
THUMB_DIMX | Breite des zum aktuellen Quellbild gehörenden Thumbnails in Pixeln 123
THUMB_DIMY | Höhe des zum aktuellen Quellbild gehörenden Thumbnails in Pixeln 123
THUMB_REF | Relativer Dateiname der Thumnaildatei relPfad/bildname.jpg
TIME | Speicherzeit des aktuellen Quellbildes 23:01:01
UP_DOC | Name des übergeordneten Dokuments zum aktuellen HTML-Dokuments ohne Dateiart dateiname
UP_REF | Relativer Dateiname des übergeordneten HTML-Dokuments relPfad/docname.dateiart


Reguläre Ausdrücke

Spezialzeichen und ihr Verhalten

Zeichen | Funktion
\ | Kennzeichnet einen speziellen Platzhalter, entwertet einen normalen Platzhalter, dient als normales Zeichen, dient als Verweis auf ein gespeichertes Suchergebnis oder legt einen Oktalwert fest.
^ | Platzhalter für den Anfang einer Zeichenkette
$ | Platzhalter für das Ende einer Zeichenkette
* | Vorheriger Begriff darf 0x oder mehrfach vorkommen. Entspricht {0,} ab* a ab abb ...
+ | Vorheriger Begriff darf 1x oder mehrfach vorkommen. Entspricht {1,} ab+ ab abb ...
? | Vorheriger Begriff darf 0x oder 1x vorkommen. Entspricht {0,1} ab? a ab
{n} | n ist eine positive Zahl. Anzahl der Vorkommen des vorherigen Begriffs ab{2} abb
{n,} | n ist eine positive Zahl. Mindestanzahl der Vorkommen des vorherigen Begriffs ab{2,} abb abbb ...
{n,m} | m und n sind positive Zahlen, wobei n <= m sein muss. Mindestanzahl und Maximalanzahl der Vorkommen des vorherigen Begriffs ab{1,3} ab abb abbb
? | Wenn dieses Zeichen direkt einem anderen Sonderzeichen (* + ? {n} {n,} {n,m}) folgt, ist das Ergebnis so klein wie möglich (normalerweise umfassen die Suchergebnisse soviel wie möglich)
. | Platzhalter für ein beliebiges Zeichen außer \n
(pattern) | Vergleicht auf pattern und speichert das Ergebnis zur späteren Verwendung (siehe \0...\9)
(?:pattern) | Vergleicht auf pattern ohne das Ergebnis zu speichern
(?=pattern) | Vorwärtsschauendes vergleichen. Vergleich trifft zu, wenn pattern zutrifft. Das Ergebnis wird nicht zur späteren Verwendung gespeichert. Die weitere Abarbeitung beginnt vor pattern Windows (?=95|98|NT|2000) findet Windows in Windows 2000 aber nicht in Windows XP
(?!pattern) | Negatives vorwärtsschauendes vergleichen. Vergleich trifft zu, wenn pattern nicht zutrifft. Das Ergebnis wird nicht zur späteren Verwendung gespeichert. Die weitere Abarbeitung beginnt vor pattern Windows (?!95|98|NT|2000) findet Windows in Windows XP aber nicht in Windows 2000
x|y | Vergleicht auf x oder y a|ab a ab
[xyz] | Zeichenalternativen. Jedes der Zeichen darf vorkommen a[abc]bc aabc abbc acbc
[^xyz] | Ausgeschlossese Zeichenalternativen. Keines der Zeichen darf vorkommen a[^bc]bc aabc adbc ...
[a-z] | Zeichenbereich. Jedes Zeichen im angegebenen Bereich darf vorkommen a[a-c]bc aabc abbc acbc
[^a-z] | Ausgeschlossener Zeichenbereich. Alle Zeichen im angegebenen dürfen nicht vorkommen a[^a-c]bc adbc aebc ...
\b | Spezieller Platzhalter für "Wortende"
\B | Spezieller Platzhalter für "Nicht-Wortende"
\cx | Spezieller Platzhalter, um das anschließende Zeichen als Kontrollzeichen festzulegen. x muss ein Buchstabe sein. Zum Beispiel "Carriage Control" mit \cM
\d | Spezieller Platzhalter für eine Ziffer. Entspricht [0-9]
\D | Spezieller Platzhalter für ein Zeichen, das keine Ziffer ist. Entspricht [^0-9]
\f | Spezieller Platzhalter für Formfeed". Entspricht \x0c oder \cL
\n | Spezieller Platzhalter für "Newline". Entspricht \x0a oder \cJ
\r | Spezieller Platzhalter für "Carriagereturn". Entspricht \x0d oder \cM
\s | Spezieller Platzhalter für "Whitespace"-Zeichen (Leerzeichen, Tabulator, usw.). Entspricht [ \f\n\r\t\v]
\S | Spezieller Platzhalter für kein "Whitespace"-Zeichen (Leerzeichen, Tabulator, usw.). Entspricht [^ \f\n\r\t\v]
\t | Spezieller Platzhalter für Tabulator. Entspricht \x09 oder \cI
\v | Spezieller Platzhalter für Vertikaltabulator. Entspricht \x0b oder \cK
\w | Spezieller Platzhalter für ein alphanumerisches Zeichen inklusive Unterstrich. Entspricht [A-Za-z0-9_]
\W | Spezieller Platzhalter für kein alphanumerisches Zeichen inklusive Unterstrich. Entspricht[^A-Za-z0-9_]
\xn | Spezieller Platzhalter, um das anschließende Zeichen über seinen Hexadezimalwert angeben zu können. Der Wert muss genau zwei Zeichen umfassen. Zum Beispiel das Zeichen "A" mit \x41
\num | Zugriff auf durch (pattern) gespeicherte Suchergebnisse. num ist eine positive Zahl
\n | Platzhalter für Oktalwert oder gespeichertes Suchergebnis. Gibt es mindestens n gespeicherte Suchergebnisse, handelt es sich um einen Verweis auf ein Suchergebnis. Ansonsten handelt es sich um einen Oktalwert von 0-7
\nm | Platzhalter für Oktalwert oder gespeichertes Suchergebnis. Gibt es mindestens nm gespeicherte Suchergebnisse, handelt es sich um einen Verweis auf ein Suchergebnis. Gibt es mindestens n gespeicherte Suchergebnisse, handelt es sich um einen Verweis auf ein Suchergebnis von einem normalen Zeichen. Treffen beide Alternativen nicht zu, handelt es sich jeweils um Oktalwerte von 0-7
\nml | Platzhalter für Oktalwert. n muss 0-3 sein, m 0-7 und l ebenfalls 0-7
\un | Platzhalter für Unicode-Zeichen als Hexadezimalwert. Es müssen 4 Hexadezimalwerte angegeben werden. Zum Beispiel ist \u00A9 das Copyrightsymbol (©)

Rangfolge der Auswertung

Stufe | Operator | Beschreibung
1 | \ | Spezialzeichen
2 | (), (?:), (?=), [] | Klammern
3 | *, +, ?, {n}, {n,}, {n,m} | diverse Platzhalter und Anzahlangaben
4 | ^, $, \platzhalter | diverse Platzhalter
5 | | | Alternativen
Zum Beispiel findet a|bcd a oder bcd. Sollen sowohl acd als auch bcd gefunden werden, kann dies durch Klammerung erreicht werden. Die Angabe muss dann (a|b)cd lauten.


Metadaten - Exif und IPTC

Digitale Bilder können außer dem eigentlichen Bild weitere Informationen enthalten.

Dies wird insbesondere bei Fotos genutzt, die von Digitalkameras erzeugt wurden. So werden dort der Name des Kameraherstellers, die Bezeichnung des Kameramodells, Belichtungszeit, Blende, Aufnahmedatum und viele weitere Informationen abgelegt. Der Aufbau dieser Informationen ist in einer Norm, "Exchangeable image file format for Digital Still Cameras", kurz Exif genannt, beschrieben.

Alle Bilder vom Typ JPEG können aber auch allgemeine Information enthalten, deren Aufbau die IPTC festgelegt hat.

Da die Metadaten-Auswertung teilweise sehr aufwändig ist und die internen Strukturen von JoJoThumb erweitert, ist der Ausleseprozess explizit einzuschalten. Der Schalter befindet sich bei den HTML-Grundeinstellungen. Die einzelnen Informationen werden in Exif/IPTC-Einträgen abgelegt und können durch JoJoScript-Funktionen ausgewertet werden.

Um die gesamte folgende Funktionalität nutzen zu können, muss ein Grundwissen über die entsprechenden Normen vorhanden sein; insbesondere die Bedeutung von Eintragsnummern (Tags), Eintragsbezeichnungen und Eintragsbedeutungen.

Leider werden die in der Norm beschriebenen Vorgaben von den Herstellern nicht immer gleich interpretiert. Zusätzlich sieht die Exif-Norm einen Hersteller/Geräteabhängigen Teil (Makernote) in dieser Informationssammlung vor. Aus diesem Grund muss eine Auswertung teilweise an diese Gegebenheiten angepasst werden.
Für JoJoThumb bedeutet dies, dass es möglicherweise an nicht bekannte Kameramodelle angepasst werden muss.
Um etwas auf diese Tatsache vorbereitet zu sein, ist ein Teil der Metadatendefinition in eine externe Beschreibungsdatei (metadata.def im Installationsverzeichnis von JoJoThumb) ausgelagert worden. Im folgenden sind das Format dieser Datei sowie einige Exif- und IPTC-Einträge mit ihrer Nummer und ihrer Bezeichnung beschrieben.

Aufbau der Metadaten-Beschreibungsdatei (metadata.def)

Erstes Zeichen einer Zeile Zeileninhalt
* Rest der Zeile ist Kommentar
# Sektion
Sektionsbezeichnung | Bedeutung
version nr | Die Versionsangabe muss zwingend als erste Sektion vorhanden sein
main

Image File Directory 0 (IFD 0)
Hierüber sind alle möglichen allgemeinen Einträge erreichbar.
Siehe Verzeichnis der Exif-Einträge

thumbnail

Image File Directory 1 (IFD 1)
Hierüber sind alle möglichen allgemeinen Einträge für Thumbnails, die zusätzlich in den Bilder abgelegt wurden, erreichbar.
Siehe Verzeichnis der Exif-Einträge

makernote gerätegruppe

Im IFD 0 gibt es einen speziellen Eintrag, in dem die Hersteller weitere Informationen nach eigener Vorstellung ablegen können. In dieser Sektion können diese Einträge rudimentär beschrieben werden (leider sind sie sehr herstellerabhängig).
Siehe Verzeichnis der Exif-Einträge

Im Anschluss an die Sektionsbezeichnung muss der Name der Gerätegruppe, für den diese Makernote gilt, angegeben werden.
Zur Zeit sind folgende Gerätegruppen realisiert:

Gerätegruppe bzw. Hersteller | Modelle (da nicht alle Modelle getestet werden können, gilt die Aussage bis auf Widerruf)
ASAHI01 | alle Pentax-Modelle außer E-Serie und die bei ASAHI02 aufgeführten
ASAHI02 | Optio 230
CANON01 | alle
CASIO01 | alle Casio-Modelle, außer die bei CASIO02 aufgeführten
CASIO02 | EX-M1, EX-S1, QV-R3, QV-R4
EPSON01 | alle
FUJIFILM01 | alle
MINOLTA01 | alle
OLYMPUS01 | alle Agfa, Epson, Olympus, Sanyo
PANASONIC01 | alle
NIKON01 | D100, E700, E800, E900, E900S, E910, E950, E2000, E4500, E5700
NIKON02 | für alle übrigen Nikonmodelle, z.B. D1, E880, E885, E990, E995, E2500, E5000
gps

Global positioning System (gps)
Einige Kameramodelle können Information über den Standort, an dem das Foto gemacht wurde speichern. Diese Informationen werden über das GPS bezogen.
Siehe Verzeichnis der Exif-Einträge

focalequiv

Zu einzelnen Kameramodellen kann hier ein Multiplikator eingetragen werden, wodurch dann eine Brennweitenentsprechung zu einer 35mm-Kamera ermittelt werden kann

iptc

Hieran können dann die Bezeichnungen der jeweiligen IPTC-Tags folgen

z.B.
# version 2
# makernote nikon02
# iptc
+ Beschreibung des Eintrags der vorher bezeichneten Sektion
  • Für Einträge der Sektionen main, thumbnail, makernote und gps gilt:
    Eintragnummer (INTEGER), Eintragsposition (INTEGER), Format (INTEGER), Bezeichnung (STRING)

    Die Eintragsnummer ist z.B. der Liste der Einträge der Norm Exif zu entnehmen.

    Bei bestimmten Einträgen können mehrere Informationen abgelegt sein. Hier ist die Position in dieser Informationsfolge anzugeben. Ist der Basiseintrag bemeint, ist eine 0 als Position anzugeben.

    Die Formatangabe gilt für die Anforderung des Exif-Eintrags mit der Funktion exifnice.

    spezieller Exif-Eintrag | Format | Darstellung | Anmerkungen
    ExposureTime - 1/100
    FNumber - f2.8
    ComponentsConfiguration - diverse
    ShutterSpeedValue - 1/100
    ApertureValue - f2.8
    MaxApertureValue - f2.8
    FocalLength | 0 | 5.8mm | tatsächliche Brennweite
    1 | 58mm | 35mm Kamera entsprechende Brennweite
    allgemeiner Exif-Eintrag | Format | Darstellung | Anmerkungen
    Integer-Einträge 0 Sunny

    oder

    48

    oder

    48,49,50,4,...(32)

            Wenn möglich wird die Beschreibung aus der Exif-Beschreibungsdatei entnommen

    Komponenten werden durch Komma getrennt (es werden aber max. 10 Elemente dargestellt)

    1 | 0123___ | Die einzelnen Komponenten werden als ASCII Zeichen interpretiert und zu einem String zusammengesetzt. ASCII-Zeichen mit einem Wert<32 werden als _ dargestellt.
    2 | 0123 | Die einzelnen Komponenten werden als Unicode-Zeichen interpretiert (je 2 Byte) und zu einem String zusammengesetzt.
    Double-Einträge 0 1.23456

    oder

    1.23,1.48,2.45,4.76,...(15)

            Komponenten werden durch Komma getrennt (es werden aber max. 10 Elemente dargestellt)
    10 | 0.0
    11 | 0mm
    12 | 0.0cm
    13 | 0.00dm
    14 | 0.000m
    String-Einträge | 0 | abcde | keine Aufbereitung
    1 | datum | Hier wird versucht, aus dem String ein Datum zu ermittlen
    10 0.0 Einige Einträge enthalten Daten in der Form 1000/500

    Diese Informationen können in Doublewerte umgewandelt werden
    11 | 0mm
    12 | 0.0cm
    13 | 0.00dm
    14 | 0.000m

  • Für Einträge der Sektion focalequiv gilt:
    Kamerabezeichnung (STRING), Multiplikator (INTEGER oder DOUBLE)

Die Kamerabezeichung muss der Bezeichnung im EXIF-Eintrag Model entsprechen (ohne eine eventuell in Klammern vorhandene Versionsbezeichnung)

  • Für Einträge der Sektion iptc gilt:
    Tagnummer (INTEGER), Tagbezeichnung (STRING)

z.B. Name des Herstellers
+ 271, 0, 0, Make

z.B. Bezeichnung des Kameramodells
+ 272, 0, 0, Model

z.B. 35mm-Äquivalent einer Canon G2
+ Canon PowerShot G2, 4.86

z.B. IPTC-Tagbezeichnung
+ 5, Object Name
! Beschreibung des Inhalts des vorher bezeichneten Exif-Eintrags
Inhalt (INTEGER), Bezeichnung (STRING)

Mit der Inhaltsbeschreibung eines Exif-Eintrags wird die Funktion exifnice in die Lage versetzt, Rohinhalte, die zu verschiedenen Exif-Einträgen vorliegen, in eine lesbare Form zu überführen.
So wird z.B. statt 1 als Ergebnis es Erfragens der Art der Lichtquelle die Information Tageslicht angeliefert.

z.B.
+ 0x128, 0, 0, ResolutionUnit
! 1, keine Einheit
! 2, Inch
! 3, Zentimeter

+ 0x1, 5, 0, FlashMode
! 0, not fired
! 1, auto
! 2, on
! 3, red-eye reduction
! 4, slow synchro
! 5, auto+red-eye reduction
! 6, on+red-eye reduction
! 16, external flash

Ausgewählte Exif-Einträge der Norm Exif

Sektion Main
Hexadezimalwert | Dezimalwert | Bezeichnung
0x9202 | 37378 | ApertureValue
0x9203 | 37379 | BrightnessValue
0xA302 | 41730 | CFAPattern
0xA001 | 40961 | ColorSpace
0x9101 | 37121 | ComponentsConfiguration
0x9102 | 37122 | CompressedBitsPerPixel
0x8298 | 33432 | Copyright
0x132 | 306 | DateTime
0x9004 | 36868 | DateTimeDigitized
0x9003 | 36867 | DateTimeOriginal
0xA005 | 40965 | ExifInteroperabilityOffset
0x8769 | 34665 | ExifOffset
0x9000 | 36864 | ExifVersion
0x9204 | 37380 | ExposureBiasValue
0xA215 | 41493 | ExposureIndex
0x8822 | 34850 | ExposureProgram
0x829A | 33434 | ExposureTime
0xA300 | 41728 | FileSource
0x9209 | 37385 | Flash
0xA000 | 40960 | FlashPixVersion
0x829D | 33437 | FNumber
0x920A | 37386 | FocalLength
0xA210 | 41488 | FocalPlaneResolutionUnit
0xA20E | 41486 | FocalPlaneXResolution
0xA20F | 41487 | FocalPlaneYResolution
0x10E | 270 | ImageDescription
0x1 | 1 | InteroperabilityIndex
0x2 | 2 | InteroperabilityVersion
0x8827 | 34855 | ISOSpeedRatings
0x9208 | 37384 | LightSource
0x10F | 271 | Make
0x927C | 37500 | MakerNote
0x9205 | 37381 | MaxApertureValue
0x9207 | 37383 | MeteringMode
0x110 | 272 | Model
0x112 | 274 | Orientation
0xA002 | 40962 | PixelXDimension
0xA003 | 40963 | PixelYDimension
0x13F | 319 | PrimaryChromaticities
0x214 | 532 | ReferenceBlackWhite
0x1000 | 4096 | RelatedImageFileFormat
0x1002 | 4098 | RelatedImageLength
0x1001 | 4097 | RelatedImageWidth
0xA004 | 40964 | RelatedSoundFile
0x128 | 296 | ResolutionUnit
0xA301 | 41729 | SceneType
0xA217 | 41495 | SensingMethod
0x9201 | 37377 | ShutterSpeedValue
0x131 | 305 | Software
0x9206 | 37382 | SubjectDistance
0x9290 | 37520 | SubSecTime
0x9292 | 37522 | SubSecTimeDigitized
0x9291 | 37521 | SubSecTimeOriginal
0x9286 | 37510 | UserComment
0x13E | 318 | WhitePoint
0x11A | 282 | XResolution
0x211 | 529 | YCbCrCoefficients
0x213 | 531 | YCbCrPositioning
0x212 | 530 | YCbCrSubSampling
0x11B | 283 | YResolution
0x12D | 301 | TransferFunction
0x13B | 315 | Artist
0x828F | 33423 | BatteryLevel
0x83BB | 33723 | IPTC/NAA
0x8773 | 34675 | InterColorProfile
0x8824 | 34852 | SpectralSensitivity
0x8825 | 34853 | GPSInfo
0xA20B | 41483 | FlashEnergy
0xA20C | 41484 | SpatialFrequencyResponse
0xA214 | 41492 | SubjectLocation
0x8828 | 34856 | OECF
0x10A | 266 | FillOrder
0x10D | 269 | DocumentName
0x156 | 342 | TransferRange
0x200 | 512 | JPEGProc
0x828D | 33421 | CFARepeatPatternDim
0x9C9B | 40091 | XP-Titel
0x9C9C | 40092 | XP-Kommentar
0x9C9D | 40093 | XP-Autor
0x9C9E | 40094 | XP-Stichwort
0x9C9F | 40095 | XP-Thema

Die gelb markierten Einträge werden von Microsoft zum Speichern der JPG-Eigenschaften über den Eigenschaftsdialog unter Windows XP benutzt. Die Inhalte werden als Unicode-Zeichen gespeichert. Zum Auslesen mit Exifnice ist deshalb die Formatangabe 2 zu benutzen.

Sektion Thumbnail
Hexadezimalwert | Dezimalwert | Bezeichnung
0x100 | 256 | ImageWidth
0x101 | 257 | ImageLength
0x102 | 258 | BitsPerSample
0x103 | 259 | Compression
0x106 | 262 | PhotometricInterpretation
0x111 | 273 | StripOffsets
0x115 | 277 | SamplesPerPixel
0x116 | 278 | RowsPerStrip
0x117 | 279 | StripByteCounts
0x11C | 284 | PlanarConfiguration
0x201 | 513 | JpegIFOffset
0x202 | 514 | JpegIFCount

Ausgewählte IPTC-Einträge

Hexadezimalwert | Dezimalwert | Bezeichnung
0x05 | 5 | Object Name
0x37 | 55 | Created date
0x5a | 90 | City
0x65 | 101 | Country
0xbc | 188 | Owner id


Web-Adressen

Home: http://www.jojosoftware.de

Email: jojo@jojosoftware.de

Updates: http://www.jojosoftware.de/jojothumb